= 5.3.0, PHP 7, PHP 8)pcntl_sigwaitinfo — 等待信號說明pcntl_sigwaitinfo(array $set, array &$siginfo = ?): intpcntl_sigwaitinfo()函數(shù)暫">

pcntl_sigwaitinfo

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

pcntl_sigwaitinfo等待信號

說明

pcntl_sigwaitinfo(array $set, array &$siginfo = ?): int

pcntl_sigwaitinfo()函數(shù)暫停調(diào)用腳本的執(zhí)行直到接收到set 參數(shù)中列出的某個信號。只要其中的一個信號已經(jīng)在等待狀態(tài)(比如: 通過 pcntl_sigprocmask()函數(shù)阻塞), 函數(shù)pcntl_sigwaitinfo()就回立刻返回。

參數(shù)

set

要等待的信號數(shù)組。

siginfo

siginfo是一個輸出參數(shù),用來返回信號的信息。

以下元素會為所有信號設(shè)置:

  • signo: 信號編號
  • errno: 錯誤編號
  • code: 信號代碼

下面元素可能會為SIGCHLD信號設(shè)置:

  • status: 退出的值或信號
  • utime: 用戶消耗的時間
  • stime: 系統(tǒng)(內(nèi)核)消耗的時間
  • pid: 發(fā)送進程ID
  • uid: 發(fā)送進程的實際用戶ID

信號SIGILL, SIGFPE, SIGSEGVSIGBUS 可能會被設(shè)置的元素:

  • addr: 發(fā)生故障的內(nèi)存位置

可能會為SIGPOLL 信號設(shè)置的元素:

  • band: Band event
  • fd: 文件描述符

返回值

成功時,函數(shù)pcntl_sigwaitinfo()返回一個信號編號。

范例

示例 #1 pcntl_sigwaitinfo() example

<?php
echo "Blocking SIGHUP signal\n";
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));

echo 
"Sending SIGHUP to self\n";
posix_kill(posix_getpid(), SIGHUP);

echo 
"Waiting for signals\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>

參見