Bonsoir,
Il m'est demandé de créer un programme qui va créer indéfiniment des processus fils grâce à la commande fork() dans un premier temps.
Dans un second temps, stopper ce processus de création grâce a une saisie clavier, puis attendre la fin des fils engendrés !
Mon problème ce situe dans le fait de créer indéfiniment les fils jusqu’à la saisie clavier !
Voici mon bout de code qui ne crée qu'un seul fils !
Et un autre que je n'arrive pas à stopper !
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 int STOP = 1; while (STOP) { sleep(1); switch (pid = fork()) { case -1 : perror("erreur fork"); exit(EXIT_FAILURE); case 0 : while (1) { fprintf(stdout,"(pid=%d | ppid=%d)\n",getpid(),getppid()); fflush(stdout); sleep(5); } exit(EXIT_SUCCESS); default : if (read(STDIN_FILENO,&tmp,1)) { fprintf(stdout,"\n== STOP ==\n"); STOP = 0; } break; } }
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 int STOP = 1; while (STOP) { sleep(1); switch (pid = fork()) { case -1 : perror("erreur fork"); exit(EXIT_FAILURE); case 0 : while (1) { fprintf(stdout,"(pid=%d | ppid=%d)\n",getpid(),getppid()); fflush(stdout); sleep(5); } exit(EXIT_SUCCESS); default : break; } } if (read(STDIN_FILENO,&tmp,1)) { fprintf(stdout,"\n== STOP ==\n"); STOP = 0; }
Où se site le problème ?
Merci d'avance !
Partager