Bonjour,
j'écris ici pour solliciter votre aide, je vais résumer mon problème :
je veux créer n processus fils pour exécuter en parallèle la fonction child_procedure() à chacun des processus fils.
Mais on me demande de lancer que p processus d'abord (p < n), puis dès qu'un processus s’arrête je relance un nouveau, jusqu'à ce que les n soient lancés.
Donc mon code ressemble à ça :
Mais ça ne marche pas, j'ai mis ici un résume de mon code, j'ai l'impression que quand un fils s’arrête je crée mal le nouveau fils ou bien il n’exécute pas correctement la tache, en tout cas mon programme plante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 while(i < p) { pid = fork(); if(pid == 0) break; else if( pid = =-1) exit(1); } if(pid >0) { while(1){ if(wait(&status) != -1) { j++; if(j== n) break; pid0 = fork() if(pid0 == 0) { child_procedure() } } else break; } } else child_procedure();
Bref, je suis débutant, et si quelqu'un a une idée ingénieuse ou bien du code C écrit déjà, je suis preneur.
Cordialement
Partager