1. 程式人生 > >C程序的執行和當前進程的結束

C程序的執行和當前進程的結束

結束進程 csharp log 取消 main函數 sha atexit 註冊 歷程

內核使程序執行的唯一方法,就是調用exec函數,這個函數又會啟動一個C程序啟動例程,這個啟動例程是C程序的啟動地址。負責調用main函數,並接受mainn函數的返回值。

使得進程結束的唯一方式是隱式的_exit/_Exit,通過調用exit(C函數),會執行在atexit中註冊的結束處理程序,並關閉所有的打開流,最後調用-exit結束進程。

或者是受到進程結束信號。

在C中

exit(0)<==>return 0

 

進程結束有8種方式

5種正常

main函數返回 return

exit()

_exit()

最後一個線程的歷程結束返回

最後一個線程調用pthread_exit返回

 

3種異常

abort()

收到信號

最後一個線程對取消請求作出響應

C程序的執行和當前進程的結束