阻塞 非阻塞 進程等待 wait waitpid

進程等待:
父進程等待子進程的推出,獲取子進程返回值,釋放資源防止殭屍進程。

操做:ide

pid_t wait(int* status)

status:一個整形空間的地址,接受子進程返回值;
返回值:
成功返回子進程pid,失敗返回-1;**
等待任意一個子進程退出,如沒有退出,一直阻塞等待;code

阻塞:爲了完成某一目的調用某一個功能,不具有完成條件,則一直等待;
調用以前有子進程退出,調用時就會當即處理進程

pid_t waitpid(pid_t childpid,int  *status,int options)

能夠等待一個,也能夠等待指定的一個;
能夠阻塞等待也能夠非阻塞等待
childpid:-1等待任意子進程
大於0表示等待指定子進程
status用於獲取退出子進程的返回值
option:0-默認阻塞等待
WNOHANG-設置非阻塞等待
返回值:錯誤返回-1;
沒有子進程退出返回0;
有子進程退出返回子進程pid資源

.it

非阻塞:爲了完成某一功能,發起一調用,當前不具有條件,則當即返回;
只要調用,有退出就直接處理;io

相關文章
相關標籤/搜索