Processus fils et pere avec fork()

dr_melik Messages postés 49 Statut Membre -  
 mouhamedy3 -
Bonjour,
je voudrais savoir comment peut on créer 2 processus fils à partir d'un meme pere
merci d'avance et je serais content de m'aider .
Configuration: Windows Vista
Firefox 3.0.4

3 réponses

  1. bouhaik
     
    tu fais le test .donc si le pid elle sur le pére donc fork()=1 sinom fork()=-1
    1
  2. nacera
     
    bonjour pour créer plusieur files on fera une boucle for si 2 fils donc
    (for i=0;i<2;i++)
    0
  3. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Salut,

    Tu commence par forker une fois, puis tu vérifies si ça te retourne pas 0 (ce qui voudrait dire que tu es dans le fils),
    et puis tu reforkes.
    #include <unistd.h>
    
    int main()
    {
       if (fork() > 0) {
            fork();
       }
       wait(0);
       return 0;
    }
    -2
    1. dr_melik Messages postés 49 Statut Membre 6
       
      merci, mais dans ce cas là que je fais une petite confusion
      quand on fais le premier fork le père P0 crée un fils P1
      et la 2eme fork on va créer 2 fils (n'est ce pas) le P1 crée un fils P2 et P0 va créer aussi un fils P3
      donc on a plus que 2 processus
      est ce qu'on peut pas supprimer P2 , ou bien c'est la seule solution et merci une autre fois.
      0
    2. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526 > dr_melik Messages postés 49 Statut Membre
       
      Justement non, grâce à la condition if, on vérifie qu'on est bien dans le père et donc lui seule appelera le deuxième fork.
      C'est vrai que c'est pas facile.
      Lis-donc ce truc et dis moi si tu comprends mieux:
      http://www.commentcamarche.net/faq/sujet 10611 que fait un fork
      0
    3. dr_melik Messages postés 49 Statut Membre 6 > kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention  
       
      merci ,donc si fork() =0 alors le fils va appeler le fork().
      mais si on veut que les 2 fils précédent créent 2 autres fils, comment on va savoir on est dans quel fils
      c à d quel fils va utiliser le fork par ce ke normalement ils vont avoir tout les deux un fork=0, si j'ai bien compris.
      0
    4. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526 > dr_melik Messages postés 49 Statut Membre
       
      Euh...je comprends pas bien ta question.
      0
    5. dr_melik Messages postés 49 Statut Membre 6 > kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention  
       
      je veux dire que si on veut faire le meme travail qu'on a fait pour le pere sur les 2 fils crées.
      c-à-d si on veut que chaque fils crée lui même 2 autres fils donc devient un père et on aura une sorte d'arbre .
      et le premier père devient disons un grand-père. tu as compris.
      comment peut-on faire cela.
      0