Espera una señal

# pcntl_sigwaitinfo

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

pcntl_sigwaitinfo — Espera una señal

### Descripción

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

La función pcntl_sigwaitinfo() suspende su ejecución hasta la recepción de una de las señales indicadas en `signals`. Si una de las señales ya está en espera (i.e., bloqueada por pcntl_sigprocmask()), pcntl_sigwaitinfo() se termina inmediatamente.

### Parámetros

`signals`

  Un array de señales a esperar.

`info`

  El parámetro `info` recibe un array que contiene la información sobre la señal.

  Los siguientes elementos están siempre disponibles para todas las señales:

  - signo : número de señal
  - errno : un número de error
  - code : código de señal

  Los siguientes elementos pueden estar disponibles para la señal `SIGCHLD`:

  - status : valor de salida o señal
  - utime : tiempo de usuario consumido
  - stime : tiempo de sistema consumido
  - pid : número de proceso llamante
  - uid : identificador del usuario llamante, o del proceso llamante

  Los siguientes elementos pueden estar disponibles para las señales `SIGILL`, `SIGFPE`, `SIGSEGV` y `SIGBUS`:

  - addr : dirección de memoria que causó el error

  Los siguientes elementos pueden estar disponibles para la señal `SIGPOLL`:

  - band : evento de band
  - fd : número de puntero de fichero

### Valores devueltos

Devuelve un número de señal en caso de éxito, o `false` si ocurre un error.

### Historial de cambios

Versión | Descripción
--- | ---
8.4.0 | Se lanza una excepción ValueError si el `signal` está vacío.
8.4.0 | Se lanza una excepción TypeError si el valor de `signal` no es un int.
8.4.0 | Se lanza una excepción ValueError si el valor de `signal` es inválido.

### Ejemplos

Ejemplo #1 Ejemplo con pcntl_sigwaitinfo()

    <?php
    echo "Bloquea la señal SIGHUP\n";
    pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));

    echo "Envía la señal SIGHUP a sí mismo\n";
    posix_kill(posix_getpid(), SIGHUP);

    echo "Espera señales\n";
    $info = array();
    pcntl_sigwaitinfo(array(SIGHUP), $info);
    ?>

### Ver también

- pcntl_sigprocmask() - Lista y configura las señales bloqueadas
- pcntl_sigtimedwait() - Espera una señal en un tiempo dado

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open