C程式退出

2021-09-30 08:32:23 字數 724 閱讀 2095

有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...