Bonjour,
je voudraissavoir comment creer un process pere et deux process fils avec fork()
je vous en remercie d'avance![]()
Bonjour,
je voudraissavoir comment creer un process pere et deux process fils avec fork()
je vous en remercie d'avance![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include<stdio.h> #include<stdlib.h> int main () { int i; for(i=0;i<2;i++) fork(); printf("Je suis %d", getpid()); return 0 ; }
Je t'en prie n'hésite pas à poser des questions surtout à ton professeur...Envoyé par pradinois
![]()
Sauf que là, il y aura 3 processus fils, non?
Le premier fils va forker...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Oui il faut tester le PID pour savoir si on est sur le père ou sur le fils.
De mémoire, il me semble que fork renvoie 0 au fils et renvoie le PID du fils au père.
En gros :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 pid = fork() if (pid != 0) printf("Je suis le père"); else printf("Je suis le fils");
Valeurs de retour du fork
n > 0 On est dans le processus père
n = 0 On est dans le processus fils
n = -1 fork a échoué, on n'a pas pu créer de processus
Et une url pratique : http://www.infres.enst.fr/~domas/BCI/Proc/TPproc.html#RTFToC4
Sinon tu as la norme POSIX qui très approprié pour créer des threads (pthread) mais tout dépend de l'utilisation que tu veux en faire.
Partager