pcntl_wait
(PHP 5)
pcntl_wait — Attend ou retourne le statut d'un processus fils
Description
&$status
[, int $options
= 0
] )pcntl_wait() suspend l'exécution du processus courant jusqu'à ce qu'un des processus fils soit terminé, ou qu'un signal soit envoyé pour terminer le processus courant ou pour appeler un gestionnaire. Si le processus est déjà terminé au moment de l'appel de la fonction, c'est-à-dire si le processus est un zombie, alors la fonction se termine immédiatement. Toutes les ressources système utilisées par le processus fils sont libérées. Lisez le manuel de votre système à wait(2) pour avoir des détails spécifiques sur le fonctionnement de wait() sur celui-ci.
Note:
Cette fonction est équivalente à appeler la fonction pcntl_waitpid() avec un
pid
valant -1 et aucune option.
Liste de paramètres
-
status
-
pcntl_wait() va stocker les informations de statut dans le paramètre
status
qui peut être lu avec les fonctions suivantes : pcntl_wifexited(), pcntl_wifstopped(), pcntl_wifsignaled(), pcntl_wexitstatus(), pcntl_wtermsig() et pcntl_wstopsig(). -
options
-
Si wait3 est disponible sur votre système (c'est le cas de la plupart des systèmes BSD-), vous pouvez ajouter le paramètre optionnel
options
. S'il n'est pas fourni, wait() sera utilisé pour l'appel système. Si wait3 n'est pas disponible, le paramètreoptions
n'aura pas d'effet. La valeur deoptions
est la combinaison de zéro ou plusieurs des constantes suivantes :Valeurs possibles pour options
WNOHANG Termine immédiatement si aucun processus ne s'est terminé. WUNTRACED Termine pour les processus qui sont stoppés, et pour ceux dont le résultat n'a pas été rapporté.
Valeurs de retour
pcntl_wait() retourne l'identifiant de processus qui s'est terminé, -1 en cas d'erreur ou zéro si WNOHANG a été fourni comme option (disponible sur les systèmes wait3), et qu'aucun processus fils n'était disponible.
Voir aussi
- pcntl_fork() - Duplique le process courant
- pcntl_signal() - Installe un gestionnaire de signaux
- pcntl_wifexited() - Vérifie si le code de retour représente une fin normale
- pcntl_wifstopped() - Retourne TRUE si le processus fils est stoppé
- pcntl_wifsignaled() - Retourne TRUE si le code statut représente une fin due à un signal
- pcntl_wexitstatus() - Retourne le code d'un processus fils terminé
- pcntl_wtermsig() - Retourne le signal qui a provoqué la fin du processus fils
- pcntl_wstopsig() - Retourne le signal qui a causé l'arrêt du processus fils
- pcntl_waitpid() - Attend la fin de l'exécution d'un processus fils