有5種方式正常退出,3種方式異常退出
在程式退出後執行其它函式:用atexit註冊終止處理程式
正常退出方式:
(1)呼叫exit函式(退出之前會做一些清理工作,比如關閉已經開啟的檔案流)
(2)從main函式返回,效果和呼叫exit函式一樣
(3)呼叫_exit或_exit函式(直接退出,不做任何事情)
(4)最後乙個執行緒從其啟動例程返回
(5)最後乙個執行緒呼叫pthread_exit
異常退出方式:
(1)呼叫abort
(2)接到乙個訊號並終止
(3)最後乙個執行緒對取消請求做出響應
可以通過在程式中呼叫atexit函式註冊終止處理函式,這些函式會在main函式退出後被呼叫
注意:只有main函式通過第一第二種方式退出時,atexit函式註冊的函式才會被執行
atexit函式的原型是:int atexit(void (*func)(void));傳給atexit函式的引數是乙個函式指標,這個指標指向的函式沒有返回值也沒有引數
iso c規定乙個程序可以向atexit註冊的終止處理函式的最大個數是32
例:#include
#include
#include
void test()
int main()
執行結果:
exec main
main exit
test exec
c 如何退出程式
一些操作可以關注 gc.collect 另 1,將主線程設定為後台程序。方法是將主線程的isbackground true。據說,這樣在關閉主程式時後關閉主線程,並關閉所有的執行緒。2,有人列出了c 程式退出的幾種方法 2 system.environment.exit 0 無論在主線程或其它執行緒...
C 程式退出小記
是這樣的,我需要啟動乙個輪詢執行緒,然後,在退出的時候,發現其並沒有被關掉,於是問題就產生了。主要在wpf程式,winform中遇到的。這樣就有了等待的說法,自然是要等執行緒全部退出才退出程式比較好。這個辦法暫時還沒用。然後,我採用了暴力的手段。2.2.1 例項退出 會有問題的,release下會崩...
c 強制退出程式
引用 msdn和從網上查資料才得知,dispose 方法,雖然能釋放當前窗體的資源,卻不能強制結束迴圈,要想強制突出當前程式要用 system.environment.exit int exitcode 方法 該方法 終止當前程序並為基礎作業系統提供指定的退出 如下則問題解決 private voi...