php8.5
Home/ Manual/ pcntl / functions/ pcntl_sigwaitinfo

pcntl_sigwaitinfo

PHP function Edit on GitHub ✎

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

Waits for signals

Description

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.

Parameters

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

Return Values

Returns a signal number on success,Falseforfailure.

Changelog

VersionDescription
8.4.0On failure, false is now returned; previously -1 was returned in some cases.
8.4.0A ValueError is thrown if signals is empty.
8.4.0A TypeError is thrown if signals value is not an int.
8.4.0A ValueError is thrown if signals value is invalid.

Examples

pcntl_sigwaitinfo() example

php
<?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);
?>

See Also

Source: reference/pcntl/functions/pcntl-sigwaitinfo.xml · from the official PHP manual (php/doc-en)