此函数在未实现底层 C 函数的平台上不可用。其中包括 MaxOS[1] 和 FreeBSD[2]
[1] : http://opensource.apple.com//source/xnu/xnu-1456.1.26/bsd/sys/signal.h
[2] : http://fxr.watson.org/fxr/source/sys/signal.h?v=FREEBSD11
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
pcntl_sigwaitinfo — 等待信号
函数 pcntl_sigwaitinfo() 会挂起调用脚本的执行,直到 signals
中给出的某个信号被传递。如果某个信号已经处于挂起状态(例如,被 pcntl_sigprocmask() 阻塞),则 pcntl_sigwaitinfo() 会立即返回。
signals
要等待的信号数组。
info
参数 info
被设置为包含有关信号信息的数组。
以下元素对所有信号都设置
以下元素可能对 **SIGCHLD
** 信号设置
以下元素可能对 **SIGILL
**,**SIGFPE
**,**SIGSEGV
** 和 **SIGBUS
** 信号设置
以下元素可能对 **SIGPOLL
** 信号设置
成功时返回信号编号,失败时返回 **false
**。
示例 #1 pcntl_sigwaitinfo() 示例
<?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);
?>
此函数在未实现底层 C 函数的平台上不可用。其中包括 MaxOS[1] 和 FreeBSD[2]
[1] : http://opensource.apple.com//source/xnu/xnu-1456.1.26/bsd/sys/signal.h
[2] : http://fxr.watson.org/fxr/source/sys/signal.h?v=FREEBSD11