Disassemble _start at ne işe yarar() C?
Ve bir yaz yürütebileceği benim iş arkadaşımdan öğrendimCyazmadan program main()
bir fonksiyon. Altında da yapılabilir
withoutMain.c
// Compile it with gcc -nostartfiles
void _start() {
int ret = my_main();
exit(ret);
}
int my_main() {
puts("This is a program without main!\n");
return 0;
}
Bu gibi derleme :
gcc -o withoutMain withoutMain.c –nostartfiles
Çalıştırmak gibi :
./ withoutMain
Benim sorum ne Zaman biri böyle bir şey yapmak istesin. Bazı gerçek dünya senaryo?
CEVAP
Sembolü _start
giriş noktasısenin programın. Yani, bu sembolün Adres programı başlatmak için üzerine atladı. Normalde, adı _start
işlevi C çalışma zamanı ortamı için başlatma kodunu içeren bir dosya crt0.o
adlı tarafından sağlanır. Bazı şeyler ayarlar, doldurur bağımsız değişkeni dizi argv
, orada, ve sonra main
çağrıları nasıl sayar. main
sonra döner, exit
denir.
Eğer bir programı C çalışma zamanı ortamı kullanmak istiyorsa, _start
için kendi kod kaynağına ihtiyacı var. Örneğin, Git programlama dili referans uygulama yığını ile bazı sihirli gerektiren standart dışı bir iş parçacığı modeli ihtiyaçları var, çünkü öyle. Gerçekten küçük programlar ya da sıradışı şeyler yapmak programlar yazmak istediğinizde de kendi _start
tedarik için yararlıdır.
AKSARAY 2 faces-config.xml ne işe yara...
Bir ESB nedir ve ne işe yarar?...
PorterDuff şeyi yapar.Mod android graf...
Java ile farklı sonuçlar's digest...
Klasik üzerinde ilk miras yarar?...