[C, Unix, fork()] Les fils meurent trop vite!!

Les fils meurent trop vite!! [C, Unix, fork()] - C++ - Programmation

Marsh Posté le 22-09-2002 à 19:14:17    

bonjour,
 
Voila je dois creer une application toute simple qui consiste a cree 16 process fils a partir d`un process mere. C`est la mere qui doit creer les 16 fils. Et c`est la mere qui doit mourir en dernier.
Le probleme c`est que lorsque je cree un fils, il meurt avant meme que le prochain fils soit cree.
Je voudrais savoir s`il existe un moyen pour les garder en vie le temps que tous les fils soient crees.
 
Merci.
Voici mon code (portion):
 
parentID = getpid() ;
 
for ( i = 0 ; i < 16 ; i++)
{
 if( getpid() == parentID )
 {
   if ((childID = fork()) != 0)
  /* si le test passe alors c`est la mere */
   {
 /* la mere attend que son fils soit mort avant de  
         mourir*/
        waitpid(childID, (int *)NULL, WUNTRACED) ;
   }
   else
   /* process fils */
   {    
        printf( "\nHi, I am the child #%d\n"
  "my PID is %d\n"
         "my mother is %d\n\n"
  , i+1 , getpid() , getppid() ) ;
   }
 }  
}

Reply

Marsh Posté le 22-09-2002 à 19:14:17   

Reply

Marsh Posté le 22-09-2002 à 19:27:41    

c'est logique, tu as mis ton waitpid dans ta boucle de craetion des processus. :) alors ton waitpid est fait avant que le prochain fils soit cree.
d'abord tu fais ta boucle de creation, ensuite tu fais une seconde boucle, qui fait des waitpid sur chacun des fils.  
ensuite tu tues le processus principal.
 


---------------
"OCPLB : On Casse Pas Le Binôme, 'moiselle Jade, Carlson & Peters, page 823 !"
Reply

Marsh Posté le 22-09-2002 à 19:41:31    

Je vais essayer ca. Merci beaucoup.

Reply

Marsh Posté le 22-09-2002 à 20:43:56    

NKTH a écrit a écrit :

Je vais essayer ca. Merci beaucoup.



de rien  :hello:


---------------
"OCPLB : On Casse Pas Le Binôme, 'moiselle Jade, Carlson & Peters, page 823 !"
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed