Fork et programme aléatoire - C - Programmation
Marsh Posté le 13-10-2007 à 20:19:56
'Soir,
Suis pas un expert mais d'apres le man:
Citation : |
Je crois que tu as mal compris la valeur de retour du fork!
Quand tu ecris "if (pid) ..." la suite est dans le main car "fork renvoie le pid dans le pere" (donc pid!= 0).
Marsh Posté le 13-10-2007 à 15:50:44
Bonjour
Je réalise un programme en c qui, pour le moment, doit faire communiquer deux processus par un pipe.
Or selon l'ordre dans lequel l'ordonnanceur fait passer les processus mon programme marche ou ne marche pas.
Je ne vois vraiment pas quelle est la partie du code posant problème.
Voila le code:
Et voila le code de ma console quand ca ne va pas
1) je suis dans main et mon pid est 5779
5) Je suis dans main
Mon PID est de: 5780
Le PID du processus P1 est: 0
2) Je suis dans p1
Le PID du processus P1 est: 5779
Le PID du processus main est: 5351
4) Je suis dans P1
Le PID du processus P1 est: 5781
Le titre de ma fenetre est: Processus P1
3) Je suis dans P2
Le PID du processus P1 est: 5351
Le PID du processus P2 est: 5779
descripteur de p1 vers p2 3
descripteur de p2 vers p1 3
Je ne comprend absolument pas comment le pid de main peut il varier entre le début et la fin de mon code.
Et pourquoi quand je fais printf("\n Le PID du processus P1 est: %i \n", pid); il me retourne le code 0 alors que p1 étant conçu il devrait me retourner le pid de p1.
Merci d'avance de votre aide.
Je me tiens à votre disposition
edit:simplification du code
Message édité par Anonymouse le 13-10-2007 à 17:08:13