(PHP 5, PHP 7, PHP 8)
pcntl_wait — 等待或返回 fork 的子進程狀態(tài)
&$status, int $options = 0, array &$rusage = ?): intwait函數掛起當前進程的執(zhí)行直到一個子進程退出或接收到一個信號要求中斷當前進程或調用一個信號處理函數。如果一個子進程在調用此函數時已經退出(俗稱僵尸進程),此函數立刻返回。子進程使用的所有系統(tǒng)資源將被釋放。關于 wait 在您系統(tǒng)上工作的詳細規(guī)范請查看您系統(tǒng)的 wait(2)手冊。
注意:
這個函數等同于以
-1作為參數pid的值并且沒有options參數來調用 pcntl_waitpid() 函數。
status
pcntl_wait() 將會存儲狀態(tài)信息到 status
參數上,這個通過 status 參數返回的狀態(tài)信息可以用以下函數
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() 以及
pcntl_wstopsig() 獲取其具體的值。
options
如果您的操作系統(tǒng)(多數BSD類系統(tǒng))允許使用 wait3,您可以提供可選的options
參數。如果這個參數沒有提供,wait將會被用作系統(tǒng)調用。如果wait3不可用,提供參數
options 不會有任何效果。options 的值可以是0
或者以下兩個常量或兩個常量“或運算”結果(即兩個常量代表意義都有效)。
WNOHANG |
如果沒有子進程退出立刻返回。 |
WUNTRACED |
子進程已經退出并且其狀態(tài)未報告時返回。 |
pcntl_wait() 返回退出的子進程進程號,發(fā)生錯誤時返回 -1,如果提供了 WNOHANG 作為 option(wait3可用的系統(tǒng))并且沒有可用子進程時返回 0。