WAIT(2)            Manuel du programmeur Linux            WAIT(2)


NOM
       wait, waitpid - Attendre la fin d'un processus.

SYNOPSIS
       #include <sys/types.h>
       #include <sys/wait.h>

       pid_t wait(int *status)
       pid_t waitpid(pid_t pid, int *status, int options);

DESCRIPTION
       La  fonction wait suspend l'exécution du processus courant
       jusqu'à ce qu'un enfant se termine, ou  jusqu'à  ce  qu'un
       signal  à  intercepter arrive.  Si un processus fils s'est
       déjà terminé au moment de l'appel  (il  est  devenu  "zom­
       bie"),  la  fonction  revient  immédiatement.   Toutes les
       ressources utilisées par le fils sont libérées.

       La  fonction  waitpid  suspend  l'exécution  du  processus
       courant  jusqu'à  ce  que  le processus fils numéro pid se
       termine, ou jusqu'à ce qu'un signal à intercepter  arrive.
       Si  le fils mentionné par pid s'est déjà terminé au moment
       de l'appel (il est devenu "zombie"), la  fonction  revient
       immédiatement.   Toutes  les  ressources  utilisées par le
       fils sont libérées.

       La valeur de pid peut également être l'une des suivantes :

       < -1   attendre  la  fin  de n'importe quel processus fils
              appartenant à un groupe de processus d'ID pid.

       -1     attendre la fin de n'importe quel  fils.  C'est  le
              même comportement que wait.

       0      attendre la fin de n'importe quel processus fils du
              même groupe que l'appelant.

       > 0    attendre la fin du processus numéro pid.

       La valeur de l'argument option options est un  OU  binaire
       entre les constantes suivantes :

       WNOHANG ne pas bloquer si aucun fils ne s'est terminé.

       WUNTRACED
               recevoir  l'information  concernant  également les
               fils bloqués si on ne l'a pas encore reçue.

       Si status  est  non  NULL,  wait  et  waitpid  y  stockent
       l'information sur la terminaison du fils.

       Cette information peut être analysée avec les macros suiv­
       antes, qui réclament en argument le buffer status (un int,
       et non pas un pointeur sur ce buffer).



Linux                      9 Avril 1999                         1





WAIT(2)            Manuel du programmeur Linux            WAIT(2)


       WIFEXITED(status)
               non nul si le fils s'est terminé normalement

       WEXITSTATUS(status)
               donne  le code de retour tel qu'il a été mentionné
               dans l'appel exit() ou dans le return de  la  rou­
               tine  main.   Cette macro ne peut être évaluée que
               si WIFEXITED est non nul.

       WIFSIGNALED(status)
               indique que le fils s'est  terminé  à  cause  d'un
               signal non intercepté.

       WTERMSIG(status)
               donne le nombre de signaux qui ont causé la fin du
               fils. Cette macro ne  peut  être  évaluée  que  si
               WIFSIGNALED est non nul.

       WIFSTOPPED(status)
               indique que le fils est actuellement arrêté. Cette
               macro n'a de sens que si l'on a  effectué  l'appel
               avec l'option WUNTRACED.

       WSTOPSIG(status)
               donne  le  nombre de signaux qui ont causé l'arrêt
               du fils. Cette macro ne peut etre évaluée  que  si
               WIFSTOPPED est non nul.

VALEUR RENVOYÉE
       En  cas  de réussite, le PID du fils qui s'est terminé est
       renvoyé, en cas d'echec -1 est renvoyé et  errno  contient
       le code d'erreur.

ERREURS
       ECHILD  Le  processus  indiqué  par  pid  n'existe pas, ou
               n'est pas un fils du  processus  appelant.   (Ceci
               peut  arriver  pour son propre fils si l'action de
               SIGCHLD est placé sur SIG_IGN).

       EINVAL  L'argument options est invalide.

       ERESTARTSYS
               WNOHANG n'est pas indiqué, et un signal  à  inter­
               cepter  ou  SIGCHLD  a  été reçu. Cette erreur est
               renvoyée par l'appel système.  La routine de  bib­
               liothèque  d'interface  n'est pas autorisée à ren­
               voyer ERESTARTSYS, mais renverra EINTR.

NOTES
       Les  spécifications  Single  Unix  décrivent  un  attribut
       SA_NOCLDWAIT (absent sous Linux) permettant (lorsqu'il est
       positionné) aux processus fils  se  terminant  de  ne  pas
       devenir  zombies,  comme  quand  l'action pour SIGCHLD est
       fixée à SIG_IGN (ce qui toutefois n'est pas  autorisé  par



Linux                      9 Avril 1999                         2





WAIT(2)            Manuel du programmeur Linux            WAIT(2)


       POSIX). Un appel à wait() ou waitpid() bloquera jusqu'à ce
       qu'un fils se termine, puis échouera avec errno  contenant
       ECHILD.

CONFORMITÉ
       SVr4, POSIX.1

VOIR AUSSI
       signal(2), wait4(2), signal(7)


TRADUCTION
       Christophe Blaess, 1997.












































Linux                      9 Avril 1999                         3