# pcntl_sigwaitinfo

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

pcntl_sigwaitinfo — Attend un signal

### Description

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

La fonction pcntl_sigwaitinfo() suspend son exécution jusqu'à la réception d'un des signaux, indiqué dans `signals`. Si un des signaux est déjà en attente (i.e., bloqué par pcntl_sigprocmask()), pcntl_sigwaitinfo() se termine immédiatement.

### Liste de paramètres

`signals`

  Un tableau de signaux à attendre.

`info`

  Le paramètre `info` reçoit un tableau contenant les informations sur le signal.

  Les éléments suivants sont toujours disponibles pour tous les signaux :

  - signo : numéro de signal
  - errno : un numéro d'erreur
  - code : code de signal

  Les éléments suivants peuvent être disponibles pour le signal `SIGCHLD` :

  - status : valeur de sortie ou signal
  - utime : temps utilisateur consommé
  - stime : temps système consommé
  - pid : numéro de processus appelant
  - uid : identifiant de l'utilisateur appelant, ou du processus appelant

  Les éléments suivants peuvent être disponibles pour les signaux `SIGILL`, `SIGFPE`, `SIGSEGV` et `SIGBUS` :

  - addr : adresse mémoire qui a causé l'erreur

  Les éléments suivants peuvent être disponibles pour le signal `SIGPOLL` :

  - band : événement de band
  - fd : numéro de pointeur de fichier

### Valeurs de retour

Retourne un numéro du signal en cas de succès, ou `false` si une erreur survient.

### Historique

Version | Description
--- | ---
8.4.0 | Une exception ValueError est levée si le `signal` est vide.
8.4.0 | Une exception TypeError est levée si la valeur de `signal` n'est pas un int.
8.4.0 | Une exception ValueError est levée si la valeur de `signal` est invalide.

### Exemples

Exemple #1 Exemple avec pcntl_sigwaitinfo()

`<?php
echo "Bloque le signal SIGHUP\n";
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));
echo "Envoi du signal SIGHUP à moi-même\n";
posix_kill(posix_getpid(), SIGHUP);
echo "Attente de signaux\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>`

### Voir aussi

- pcntl_sigprocmask() - Liste et configure les signaux bloqués
- pcntl_sigtimedwait() - Attend un signal dans un délai donné