Crt0
Izvršenje programa |
---|
Opšte teme |
Specifična dužina trajanja |
|
crt0 (poznat i kao c0) je skup izvršnih pokretačkih rutina povezanih sa C programom koji obavlja sve inicijatorske poslove koji su potrebni pre poziva glavne programske funkcije. On preuzima formu objekta nazvanog crt0.o, , često napisanom u asemblerskom jeziku koji je automatski povezan sa svakim izvršnim fajlom koji gradi.[1]
crt0 sadrži većinu osnovnih delova biblioteke izvršavanja. Kao takav, izvršni posao koji se obavlja zavisi od programskog prevodioca, operativnog sistema i C-ove standardne biblioteke implementacija.[1] Pored incijalnog rada koji zahteva sistemska okolina i lanca alatki, crt0 može obavljati dodatne operacije koje definiše programer, kao što je pokretanje C globalnog konstruktora i omogućavanje da C funkcija nosi GNU-ov((konstruktor)) atribut.[2][3]
"crt" označava "C izvršenje", a nula označava "pravi početak". Ipak, kada su programi prevedeni pomoću GCC-a pored C-a koristi i druge programske jezike. Alternativa crt0 je dostupna samo u posebnim slučajevima; npr, profajler gprof zahteva da programi koje pokreće budu kompatibilni sa gcrt0.[4]
Vidi još
[uredi | uredi izvor]Reference
[uredi | uredi izvor]- ^ a b „The C Runtime Initialization, crt0.o”. embecosm.com. 2010. Pristupljeno 30. 12. 2013.
- ^ „Program initialization: Creating a C library”. osdev.org. 25. 2. 2014. Pristupljeno 21. 4. 2014.
- ^ „Calling Global Constructors”. osdev.org. 8. 4. 2014. Pristupljeno 21. 4. 2014.
- ^ „Compiling a Program for Profiling: GNU gprof”. sourceware.org. Pristupljeno 30. 12. 2013.
Spoljašnje veze
[uredi | uredi izvor]- crt0.o vs crt1.o
- Linux x86 program start-up
- Hello from a libc-free world! Arhivirano na sajtu Wayback Machine (17. novembar 2016)