PHP Conference Nagoya 2025

pcntl_sigwaitinfo

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

pcntl_sigwaitinfoWaits for signals

Опис

pcntl_sigwaitinfo(array $signals, array &$info = []): int|false

The pcntl_sigwaitinfo() function suspends execution of the calling script until one of the signals given in signals are delivered. If one of the signal is already pending (e.g. blocked by pcntl_sigprocmask()), pcntl_sigwaitinfo() will return immediately.

Параметри

signals

Array of signals to wait for.

info

The info parameter is set to an array containing information about the signal.

The following elements are set for all signals:

  • signo: Signal number
  • errno: An error number
  • code: Signal code

The following elements may be set for the SIGCHLD signal:

  • status: Exit value or signal
  • utime: User time consumed
  • stime: System time consumed
  • pid: Sending process ID
  • uid: Real user ID of sending process

The following elements may be set for the SIGILL, SIGFPE, SIGSEGV and SIGBUS signals:

  • addr: Memory location which caused fault

The following element may be set for the SIGPOLL signal:

  • band: Band event
  • fd: File descriptor number

Значення, що повертаються

Returns a signal number on success, або false в разі помилки.

Журнал змін

Версія Опис
8.4.0 A ValueError is thrown if signal is empty.
8.4.0 A TypeError is thrown if signal value is not an int.
8.4.0 A ValueError is thrown if signal value is invalid.

Приклади

Приклад #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);
?>

Прогляньте також

add a note

User Contributed Notes 1 note

up
0
dave at mudsite dot com
8 years ago
This function is not available on platforms that do not implement the underlying C function. Included in this would be MaxOS[1], and 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
To Top