pcntl_sigwaitinfo
(PHP 5 >= 5.3.0)
pcntl_sigwaitinfo — Attend un signal
Description
$set
[, array &$siginfo
] )
La fonction pcntl_sigwaitinfo() suspend son exécution jusqu'à
la réception d'un des signaux, indiqué dans set
.
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
-
set
-
Un tableau de signaux à attendre.
-
siginfo
-
Le paramètre
siginfo
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
etSIGBUS
:- 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
En cas de succès, pcntl_sigwaitinfo() retourne le numéro du signal.
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é