Linux併發(子程序退出狀態的處理)

2021-07-10 14:57:58 字數 421 閱讀 3277

程序的退出狀態不等於其退出值,退出值只是退出狀態的其中乙個量。

拓展:子程序在退出的時候,其狀態資訊是怎麼傳遞給父程序的呢?答案是:可以使用exit()/_exit()來退出並傳遞這些資訊,這幾個函式的介面如下:

以上兩個函式中的引數:status就是所謂的退出值,這個退出值是整個子程序的退出狀態的一部分資訊。那麼父程序是怎麼獲取子程序的整個退出狀態的呢?答案是:可以使用wait()/waitpid()來獲得子程序正常退出的退出狀態,這幾個函式的介面如下:

這裡必須注意,此處的stat_loc所指向的記憶體就包含了所有的退出狀態,上面所提到的status被包含在該記憶體的低8位。我們可以用如下巨集來通過stat_loc獲取status:

wexitstatus(*stat_loc)

這些巨集定義可以通過查閱wait()/waitpid()的man手冊得知。

Linux程序 程序的退出

linux程序 程序的退出 2011 12 27 20 44 56 分類 linux void exit int status 注意點 1.status表明了程序終止時的狀態。當子程序使用 exit 後,父程序如果在用wait 等待子程序,那麼wait 將會返回status狀態,注意只有status...

Linux程序退出

在linux下,程序退出就表示程序即將結束了 為什麼是即將,這是因為linux設計的是父程序給子程序收屍 正常退出包括3種情形。main函式中執行return 0 呼叫exit函式,函式原型 void exit int status 呼叫 exit函式,函式原型 void exit int stat...

linux 退出狀態碼

在linux狀態中,每當命令執行完成後,系統都會返回乙個退出狀態。該退出狀態用乙個整數值表示,用於判斷命令執行的正確與否。最後一次執行命令的退出狀態值被儲存在內建變數 中,所以,可以通過echo語句測試命令是否執行成功。一般來講,退出狀態 0 表示正常執行,沒有遭遇任何問題。其他非零的狀態碼均表示失...