#include
#include
pid_t wait
(int
*status)
;status:子程序結束時返回的終止狀態(子程序是怎麼結束的)
status是乙個傳出引數
如果父程序不關心子程序的狀態,向wait中傳入null
功能:等待子程序結束(阻塞等待)
成功:返回子程序的pid,失敗:返回-
1擴充套件:使用一次wait只**乙個子程序,迴圈使用wait可**多個子程序
1 #include
2 #include
3 #include
4 #include56
void
main()
715else
if(pid ==0)
1621
else
if(pid >0)
2230
elseif(
wifexited
(status))31
34elseif(
wifsignaled
(status))35
38}3940
}
#include
#include
pid_t waitpid
(pid_t pid,
int*status,
int options)
;功能:等待指定的子程序結束
pid:要等待子程序的pid
status:子程序結束時返回的終止狀態(同wait函式中的介紹)
options:等待方式
返回值:結束子程序的pid
if pid>
0,等待程序id為要等待的子程序的pid
if pid==
0,**本組的子程序
if pid==
-1,與wait等效
if pid<
-1,**指定組的子程序
options的取值:
1.wnohang:非阻塞式,如果子程序沒有退出,waitpid返回0
如果子程序退出,則**子程序
2.wuntraced:,用於除錯,子程序退出時返回。
3.0:阻塞,waitpid(-
1,&status,0)
==wait
(&status)
;
這個程式有問題
#include
#include
#include
#include
#include
#include
intmain()
}if(i != n)
else
doif
(wpid>0)
elseif(
wifsignaled
(status))}
else
elseif(
wifsignaled
(status))}
sleep(1
);}while
(n>0)
;return0;
}
等待子程序結束wait 和waitpid
父子程序有時需要簡單的程序間同步,如父程序等待子程序的結束。linux提供了以下兩個等待函式 wait waitpid 需要包含標頭檔案 include include 1 pid t wait int status 功能 等待任一子程序終止,如果子程序終止了,此函式會 子程序的資源。呼叫wait函...
程序的等待 wait函式
wait函式 include include pid t wait int status 功能 等待子程序終止,如果子程序終止了,此函式會 子程序的資源。呼叫wait函式的程序會掛起,直到它的乙個子程序退出或收到乙個不能被忽視的訊號時才被喚醒。若呼叫程序沒有子程序或它的子程序已經結束,該函式立即返回...
程序的等待(wait和waitpid)
1.程序的等待 wait函式或waitpid程序可能發生如下情況 1 如果所有的子程序孩子執行,則阻塞 block 2 如果乙個子程序已經終止,正等待父程序獲取其終止狀態,則取得孩子程序的終止狀態返回 3 如果她沒有任何子程序,則立即出錯返回 函式的原型 include pid t wait int...