程序的等待 wait函式

2021-10-12 09:30:58 字數 738 閱讀 9585

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