等待程序結束wait

2021-10-25 04:35:55 字數 1618 閱讀 7077

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