當前位置:
首頁 >
linux操作系统之子进程回收函数wait和waitpid函数小结
發布時間:2023/11/30
50
豆豆
生活随笔
收集整理的這篇文章主要介紹了
linux操作系统之子进程回收函数wait和waitpid函数小结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? 一個進程在終止時會關閉所有的文件描述符,釋放用戶空間分配的內存,但是它的PCB還保留著,內核在其中還保留著進程的一些信息:如果正常終止,則保留著退出狀態;如果異常終止則保存著導致進程種植的信號。
? ? ?在父進程中可以調用wait和waitpid函數來獲取進程信息,然后徹底清除這個進程。
? ? ?(1)wait函數
? ? ? ?函數原型及頭文件:
函數功能:1)阻塞等待子進程退出;2)回收子進程殘余資源;3)獲取子進程結束狀態。
函數返回值:成功:清理掉的子進程id,失敗:返回-1;
使用wait函數傳出參數status來保存進程的退出狀態,可以借助宏函數進一步判斷進程終止的具體原因,具體宏函數如下:
(2)waitpid函數
函數原型;
? ? ?pid_t? waitpid(pid_t pid,int *status,int options);
函數功能:作用同wait,但可以指定pid進程清理,可以不阻塞
函數參數:
? ? ??
第三個參數option參數:
? ? ? ? WNOHANG:不發生阻塞,子進程繼續運行,返回值為0;
? ? ? ? 參數為0時,等同于wait,阻塞狀態。
總結:一次wait和waitpid只能清理一次子進程。
總結
以上是生活随笔為你收集整理的linux操作系统之子进程回收函数wait和waitpid函数小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 校花前传之很纯很暧昧剧情介绍
- 下一篇: linux操作系统进程间通信IPC之管道