next up previous contents
Next: Remplacement du code du Up: Programmation des processus Previous: Terminaison d'un fils   Contents

Attente d'un fils

Le père peut se mettre en attente jusqu'à la terminaison de son fils. Cette requète est effectuée grâce à la fonction :


pid_t wait(int *status)

Qui renvoie le numéro du processus terminé et qui met à jour la valeur de status en fonction du mode de terminaison du fils :

Un exemple de fonctionnement du wait est donné ci-dessous :

[linewidth=1pt,fillstyle=solid,shadow=true](0,0)(16,-19)


   /* Utilisation de la commande FORK */

   #include <stdio.h>
   #include <stdlib.h>

   /* Programme principal */

   void main(int   argc, char *argv[])
   {
     int   pidfils;
     int   fpid;
     int   status;

     if (pidfils=fork())
       {
         printf("Je suis %d et j'attends la fin de mon process fils %d\n", \
                 getpid(),pidfils);
         fpid=wait(&status);

         /* Si l'octet faible est different de 0 alors le
                              process fils a rencontre un probleme */
         if (0xff & status)
           {
             printf("Probleme ! Mon fils a renvoye %d dans \
                     l'octet de poids faible\n", (0xff & status));
           }
         else
           {
             printf("Mon fils %d s'est termine par un exit %d\n",fpid,\ 
                     (0xff & (status>>8)));
           }
        }
     else
       {
         sleep(10);
         exit(2);
       }
   }



Arnaud Revel
2001-11-26