7.wait和waitpid
生活随笔
收集整理的這篇文章主要介紹了
7.wait和waitpid
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
wait和waitpid:當一個進程正常或者異常終止的時候,內核就會向其父進程發送SIGCHLD信號,用于父進程來接受子進程的終止狀態。
#include<sys/wait.h>pid_t wait(int * statloc);pid_t waitpid(pid_t pid ,int * statloc,int options);wait和waitpid的主要區別是:
1)wait在等待子進程的終止返回信息的時候,也就是當所有的子進程都在運行的時候,進程將會阻塞。而waitpid卻可以使用第三個參數傳入WNOHANG選項防止阻塞,立即返回。
2)waitpid可以等待某個特定進程,而wait函數返回任意一個終止子進程的狀態。
3)一般對于wait函數出錯返回的唯一可能是調用進程沒有子進程(函數調用被信號中斷,也可能返回其他的錯誤)。而waitpid如果指定的進程或者進程組不存在。或者參數pid指定的進程不是調用進程的子進程,都可能會出錯。
waitpid函數中 pid參數的作用:
1)pid == -1。等待任意子進程。此種情況下?等效于wait
2)pid>0 。等待特定的終止進程。
3)pid ==0 。等待組ID等于調用進程組ID的任意一個進程。
4)pid<-1 。等待組ID等于pid絕對值的任一子進程。
總結
以上是生活随笔為你收集整理的7.wait和waitpid的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6.exit _exit _
- 下一篇: 8.程序什么时候应该使用线程,什么时候单