wait函式:
#include
#include
pid_t wait(int *status);
功能:
等待子程序終止,如果子程序終止了,此函式會**子程序的資源。
呼叫wait函式的程序會掛起,直到它的乙個子程序退出或收到乙個不能被忽視的訊號時才被喚醒。
若呼叫程序沒有子程序或它的子程序已經結束,該函式立即返回。
引數:
函式返回時,引數status中包含子程序退出時的狀態資訊。子程序的退出資訊在乙個int中包含了多個字段,用巨集定義可以取出其中的每個字段。
返回值:
如果執行成功則返回子程序的程序號。
出錯返回-1,失敗原因存在於errno中。
特殊程序:
(1)殭屍程序
程序已執行結束,但程序的占用的資源未被**,這樣的程序稱為殭屍程序。
子程序已執行結束,父程序未呼叫wait或waitpid函式**子程序的資源是子程序變為殭屍程序的原因。
(2)孤兒程序
父程序執行結束,但子程序未執行結束的子程序。
(3)守護程序(精靈程序)
守護程序是個特殊的孤兒程序,這種程序脫離終端,在後台執行。
等待程序結束wait
include include pid t wait int status status 子程序結束時返回的終止狀態 子程序是怎麼結束的 status是乙個傳出引數 如果父程序不關心子程序的狀態,向wait中傳入null 功能 等待子程序結束 阻塞等待 成功 返回子程序的pid,失敗 返回 1擴充套...
wait 函式父程序等待子程序退出
include include pid t wait int status pid t waitpid pid t pid,int status,int options include include pid t wait int status pid t waitpid pid t pid,int...
程序的等待(wait和waitpid)
1.程序的等待 wait函式或waitpid程序可能發生如下情況 1 如果所有的子程序孩子執行,則阻塞 block 2 如果乙個子程序已經終止,正等待父程序獲取其終止狀態,則取得孩子程序的終止狀態返回 3 如果她沒有任何子程序,則立即出錯返回 函式的原型 include pid t wait int...