pcntl_waitpid

pcntl_waitpid -- Attend la fin de l'exécution d'un processus fils

Description

int pcntl_waitpid ( int pid, int status, int options)

pcntl_waitpid( ) suspend l'exécution du processus courant jusqu'à ce que un processus fils spécifié par le paramètre pid ait terminé , ou bien qu'un signal ait mis fin à ce processus ou qu 'un signal ait appelé un gestionnaire de signaux . Si le processus fils identifié par pid est déjà terminé au moment de l' appel de cette fonction (on les appelle des processus "zombie" ) , la fonction se termine immédiatement . Toute ressource système utilisé par le processus fils est libérée . Reportez vous à la page de man waitpid( 2 ) pour avoir des détails sur le comportement de cette fonction sur votre système .

pcntl_waitpid( ) retourne l'identifiant de processus du processus fils qui s'est terminé , ou bien -1 en cas d'erreur ou encore zéro si WNOHANG a été utilisée et qu'aucun processus fils n 'était disponible .

Le paramètre pid peut prendre l ' une des valeurs suivantes :

Tableau 1 . Valeurs possibles de pid

attend que tous les processus fils dont l ' identifiant de groupe est égal à la valeur absolue de pid soient terminés .
attend que tous les processus fils soient terminés . Ceci est le même comportement que celui de la fonction wait( ) .
attend que tous les processus fils dont l ' identifiant de groupe est égal à celui du processus courant soient terminés .
attend que le processus fils dont l ' identifiant est égal à pid soit terminé .


pcntl_waitpid( ) enregistrera des informations sur le statut courant du processus dans le paramètre status , qui peut être accédé avec les fonctions suivantes : pcntl_wifexited( ) , pcntl_wifstopped( ) , pcntl_wifsignaled( ) , pcntl_wexitstatus( ) , pcntl_wtermsig( ) et pcntl_wstopsig( ) .

Le paramètre options peut prendre la valeur de zéro , ou plusieurs des constantes globales suivantes ( combinez les avec l'opérateur OR ) :

Tableau 2 . Valeurs possibles de options

retourne immédiatement si aucun processus fils ne s ' est terminé .
retourne lorsque les processus fils sont arrêtés et que leur status n ' a pas été mis à jour .


Voir aussi pcntl_fork( ) , pcntl_signal( ) , pcntl_wifexited( ) , pcntl_wifstopped( ) , pcntl_wifsignaled( ) , pcntl_wexitstatus( ) , pcntl_wtermsig( ) et pcntl_wstopsig( ) .