Crt0
Извршење програма |
---|
Опште теме |
Специфична дужина трајања |
|
crt0 (познат и као c0) је скуп извршних покретачких рутина повезаних са C програмом који обавља све иницијаторске послове који су потребни пре позива главне програмске функције. Он преузима форму објекта названог crt0.o, , често написаном у асемблерском језику који је аутоматски повезан са сваким извршним фајлом који гради.[1]
crt0 садржи већину основних делова библиотеке извршавања. Као такав, извршни посао који се обавља зависи од програмског преводиоца, оперативног система и C-ове стандардне библиотеке имплементација.[1] Поред инцијалног рада који захтева системска околина и ланца алатки, crt0 може обављати додатне операције које дефинише програмер, као што је покретање C++ глобалног конструктора и омогућавање да C функција носи ГНУ-ов((конструктор)) атрибут.[2][3]
"crt" означава "Ц извршење", а нула означава "прави почетак". Ипак, када су програми преведени помоћу ГЦЦ-а поред C-а користи и друге програмске језике. Алтернатива crt0 је доступна само у посебним случајевима; нпр, профајлер gprof захтева да програми које покреће буду компатибилни са gcrt0.[4]
Види још
[уреди | уреди извор]Референце
[уреди | уреди извор]- ^ а б „The C Runtime Initialization, crt0.o”. embecosm.com. 2010. Приступљено 30. 12. 2013.
- ^ „Program initialization: Creating a C library”. osdev.org. 25. 2. 2014. Приступљено 21. 4. 2014.
- ^ „Calling Global Constructors”. osdev.org. 8. 4. 2014. Приступљено 21. 4. 2014.
- ^ „Compiling a Program for Profiling: GNU gprof”. sourceware.org. Приступљено 30. 12. 2013.
Спољашње везе
[уреди | уреди извор]- crt0.o vs crt1.o
- Linux x86 program start-up
- Hello from a libc-free world! Архивирано на сајту Wayback Machine (17. новембар 2016)