Processus fils et pere avec fork()

dr_melik Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   -  
 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 .

3 réponses

bouhaik
 
tu fais le test .donc si le pid elle sur le pére donc fork()=1 sinom fork()=-1
1
nacera
 
bonjour pour créer plusieur files on fera une boucle for si 2 fils donc
(for i=0;i<2;i++)
0
kilian Messages postés 8732 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
dr_melik Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   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
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526 > dr_melik Messages postés 43 Date d'inscription   Statut Membre Dernière intervention  
 
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
dr_melik Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   6 > kilian Messages postés 8732 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
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526 > dr_melik Messages postés 43 Date d'inscription   Statut Membre Dernière intervention  
 
Euh...je comprends pas bien ta question.
0
dr_melik Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   6 > kilian Messages postés 8732 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