C程序總是從main函數(shù)開始執(zhí)行。main函數(shù)的原型是
int main(int argc, char *argv[]);
其中argc是命令行參數(shù)的數(shù)目,argv是指向參數(shù)的各個(gè)指針?biāo)鶚?gòu)成的數(shù)組。
當(dāng)內(nèi)核執(zhí)行C程序時(shí),(使用一個(gè)exce函數(shù)),在調(diào)用main前先調(diào)用一個(gè)特殊的啟動(dòng)例程。可執(zhí)行程序文件將此啟動(dòng)例程指定為程序的起始地址----這是由連接編輯器設(shè)置的,而連接編輯器則由C編譯器(通常是cc)調(diào)用。啟動(dòng)例程從內(nèi)核取得命令行參數(shù)和環(huán)境變量值,然后為按上述方式調(diào)用main函數(shù)做好安排。
進(jìn)程終止: 8種終止進(jìn)程的方式 1.從main返回 2.調(diào)用exit 3.調(diào)用_exit和_Exit 4.最后一個(gè)線程從其啟動(dòng)例程返回 5.最后一個(gè)線程調(diào)用pthread_exit 異常終止有3種方式 6,調(diào)用abort 7.接到一個(gè)信號并終止 8.最后一個(gè)線程對取消請求做出響應(yīng)
|