Probleme avec fork

loup626 Messages postés 10 Statut Membre -  
dubcek Messages postés 19031 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
desolé de deranger mais je dois realiser un prog en C de decomposition en facteur premier le probleme ces qu'il doit etre fait avec des processus fils (fork)

il faut que je donne un nombre de fils et chacun leur tour doivent prendre le nombre a decomposer et retourne un facteur premier et le reste et cela en boucle

Je sais que c'est pas trop clair mais est ce que quelqu'un pourrait me dire comment creer un boucle avec des fork
mais qui s'execute chacun leur tour

while (nbFils != 0){
pid_fils = fork();
switch (pid_fils):
case -1:
....
case 0:
printf("je suis le fils %d",nbFils);
...
default:
...

nbFils --;

}

je voudrai que ca me sorte
je suis le fils 3
je suis le fils 2
je suis le fils 1

et j'obtient
je suis le fils 3
je suis le fils 2
je suis le fils 1
je suis le fils 1
je suis le fils 2
je suis le fils 1
je suis le fils 1
je suis le fils 3
je suis le fils 2

Merci
A voir également:

3 réponses

Joss
 
Bonjour,
Il te manque pas un "je suis le fils 1" à la toute fin? à mon avis, comment le while, et tu devrais avoir ce que tu veux : j'ai l'imp que tes proc fils fork eux aussi. Si tu ne veux pas qu'ils fork et que tu souhaites maintenir ton while, je crois qu'il faut que tu fasses un test sur le pere. Dsl si je te dis des conneries, ca fait 3ans que j'ai plus fait de C...
0
loup626 Messages postés 10 Statut Membre 3
 
desolé d'avoir mis du temps à repondre,

je n'arrive vraiment pas a faire ce que je veux, je voudrais pouvoir creer une boucle qui crée à chaque iteration un fork() unique
0
dubcek Messages postés 19031 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
case 0:
printf("je suis le fils %d",nbFils);

ici, il faut sortir de la boucle pour que chaque fils ne rexécute pas le fork.
0