<citation rid="7066837">Bonjour, je vous contact car je dois faire un programme qui
# crée dix fils ;
# chacun des fils compte jusqu’à 5 millions, affiche un message; compte à nouveau jusqu’à 5 millions ;
# attend après ses 10 fils et affiche leur ordre d’arrivée.
mon probléme est la création des 10 fils, en fait j'ai fait :
Mais le probléme c'est qu'avec ca les fils vont également utiliser fork, donc au final voila ce que j'ai faitCode:for(i=0;i<10;i++) { pid= fork(); printf("CREATION DU FILS %d pour le PERE %d\n",pid, getpid()); }
Malgrès ca j'ai un résultat bizarre, je m'attandais a avoir comme résultat 10 ligne avec Le fils ~ a terminé, mais au lieu de ca j'ai plein plein de ligne et il y a souvent des Le fils -1 a terminéCode:static int avosmarques () { int i; pid_t pid; pid_t pid2; int p=0; for(i=0;i<10;i++) { pid= fork(); printf("CREATION DU FILS %d pour le PERE %d\n",pid, getpid()); if (pid==-1) { printf("erreur"); exit(0); } else if (pid==0) { printf("fils"); while (p<5000000) { p++; } exit(0); } else { printf("pere"); for(i=0;i<10;i++) { pid2 =wait(0); printf("LE FILS : %d A TERMINE \n",pid2); } } } return 0; }
Merci d'avance pour votre aide
-----