Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2697 connectés 

  FORUM HardWare.fr
  Programmation
  C++

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°218538
nkth
Posté le 22-09-2002 à 19:14:17  profilanswer
 

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() ) ;
   }
 }  
}

mood
Publicité
Posté le 22-09-2002 à 19:14:17  profilanswer
 

n°218540
botman
Cubeur
Posté le 22-09-2002 à 19:27:41  profilanswer
 

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 !"
n°218548
nkth
Posté le 22-09-2002 à 19:41:31  profilanswer
 

Je vais essayer ca. Merci beaucoup.

n°218577
botman
Cubeur
Posté le 22-09-2002 à 20:43:56  profilanswer
 

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 !"

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

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

 

Sujets relatifs
creations de consoles sous unix ou sous darwin avec Runtime()Lib unix smtp/pop3
[C/C++ sous UNIX] problème de buffer avec fgets et cin ![C++] Différence de codage entre .so(unix/linux) et .dll(win32)
[Sockets en C/C++ sous UNIX] Bon livre ???Comment retrouver le nom de domaine depuis une machine UNIX en C ?
[Perl] Timeout en Unix et NT[C sous Unix] != entre short int, int, et long int !!!
[C/C++ sous Unix] Manipuler les IPs[C/C++] Exécuter plusieurs fonctions en même temps : fork ???
Plus de sujets relatifs à : [C, Unix, fork()] Les fils meurent trop vite!!


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)