程序退出方式

2021-12-29 22:41:56 字數 848 閱讀 4540

程序退出分為正常退出和異常退出兩種:

(1)正常退出

a.在main函式中執行return

b.呼叫exit函式

c.呼叫_exit函式

(2)異常退出

a.呼叫about函式。

b.程序受到某個訊號,而該訊號使程式終止。

總結:不管是那種退出方式,最終都會執行核心中的同一段**。這段**用來關閉程序中所有開啟的檔案描述符,釋放它所占用的記憶體和其他資源。

退出方式比較:

a.exit和return的區別:exit是乙個函式,有引數;而return是函式執行完後的返回。exit把控制權交給系統,而return將控制權交給呼叫函式。

b.exit和abort的區別:exit是正常終止程序,而about是異常終止。

c.exit(int exit_cod):exit中的引數exit_code為0代表程序正常終止,若為其他值表示程式執行過程中有錯誤發生,比如溢位,除數為0。

d.exit()和_exit()的區別:exit標頭檔案stdlib.h中宣告,而_exit()宣告在標頭檔案unistd.h中。兩個函式均能正常終止程序,但是_exit()會執行後立即返回給核心,而exit()要先執行一些清除操作,然後將控制權交給核心。

父子程序終止的先後順序不同會產生不同的結果。在子程序退出前父程序退出,則系統會讓init程序接管子程序。當子程序先於父程序終止,而父程序又沒有呼叫wait函式等待子程序結束,子程序進入僵死狀態,並且會一直保持下去除非系統重啟。子程序處於僵死狀態是,核心只儲存該程序的一些必要資訊以備父程序所需。此時子程序始終占用著資源,同時也減少了系統可以建立的最大程序數。如果子程序先於父程序終止,且父程序呼叫了wait或waitpid函式,則父程序會等待子程序結束。

程序的退出方式

程序退出有8種方式 三種正常的退出方式 1.從main函式退出 2.呼叫exit 3.呼叫 exit exit 後五種為異常退出方式 4.最後乙個執行緒從啟動歷程返回 5.最後乙個執行緒呼叫pthread exit 6.呼叫abort 7.接到乙個訊號並終止 8.最後乙個執行緒對取消請求做出響應 先...

Unix程序退出的方式

程序有5種正常終止以及三種異常終止方式。1 從 main 函式返回 執行return從main函式返回等同於呼叫exit函式。2 呼叫 exit 函式 呼叫exit函式,這個函式由iso c所定義,包括呼叫呼叫所有的被atexit註冊過的退出處理程式和關閉所有的標準i o流。因為iso c不會處理檔...

程序的退出方式以及殭屍程序和孤兒程序

1 正常退出 檢查wait和waitpid所返回的終止狀態的巨集巨集 說明wifexited status 若為正常終止子程序返回的狀態,則為真。對於這種情況可執行wexitstatus status 取子程序傳送給exit exit或 exit引數的低8位 wifsignaled status 若...