ConFoo 2025

pcntl_sigwaitinfo

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

pcntl_sigwaitinfoWaits for signals

Descripción

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.

Parámetros

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

Valores devueltos

Returns a signal number on success, o false en caso de error.

Historial de cambios

Versión Descripción
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.

Ejemplos

Ejemplo #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);
?>

Ver también

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