父程序可能比子程序早結束,如果父程序要阻塞以等待子程序,可以使用wait或waitpid函式,wait函式只是waitpid函式的簡化版。
#include
#pid_t wait (int * statloc);
#pid_t waitpid (pid_t pid, int * statloc, int optins);
區別:在乙個子程序終止前,wait使其呼叫者被阻塞,而waitpid有乙個選項,可以使呼叫者阻塞或者不阻塞。
對於waitpid函式中的pid引數的作用見下表:
pid == -1
等待任一子程序。
pid > 0
等待其程序id與pid相等的子程序
pid == 0
等待其組id等於呼叫程序組id的任一的子程序
pid < -1
等待其組id等於pid絕對值的任一的子程序
對於waitpid函式中的options引數的作用見下表:
wcontinued
若實現支援作業控制,那麼由pid指定的任一子程序在暫停後已經繼續,但是狀態沒報告,則返回其狀態
wnohang
若由pid指定的子程序並不是立即可用的,則waitpid不阻塞,此時返回值為0
wuntraced
若實現支援作業控制,那麼由pid指定的任一子程序已經處於暫停狀態並沒報告過,則返回其狀態
wait和waitpid的區別
函式原型 include include pid t wait int status pid t waitpid pid t pid,int status,int options 概括 wait函式是waitpid函式的包裝。1.當pid 1,等待任何乙個子程序退出,和wait函式作用一樣。2.當p...
wait和 wait pid函式用法
wait和 wait pid函式用法 wait的函式原型是 i nclude 提供型別pid t的定義 i nclude pid t wait int status 程序一旦呼叫了wait,就立即阻塞自己,由wait自動分析是否當前程序的某個子程序已經退出,如果讓它找到了這樣乙個已經變成殭屍的子程序...
wait和waitpid函式詳解
wait的函式原型是 include include pid t wait int status 程序一旦呼叫了wait,就立即阻塞自己,由wait自動分析是 否當前程序的某個子程序已經退出,如果讓它找到了這樣乙個 已經變成殭屍的子程序,wait就會收集這個子程序的資訊,並 把它徹底銷毀後返回 如果...