Bonjour,
je dois faire un programme ou le processus père crée N fils qui devront s'exécuter en parallèle.
je suis bloqué dans mon code. Quelq'un peut-il m'aider svp ?
Merci.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <time.h>
#include <errno.h>
#include <sys/wait.h>
int main(int argc, char* argv[]) {
		int f;
		int status=0;
		struct timespec temps;
 
        pid_t pid;
	    int j;
	    int a=atoi(argv[1]);
 
 
	    temps.tv_sec=0;
		temps.tv_nsec=50000000;
 
      for(f=0;f<a; f++){
 
       switch(pid=fork()) {
 
               case -1 : /* Oups !!! fork n'a pas marché !*/
                         perror("fork"); exit(errno);
 
               case  0 : /*Code du fils*/
 
				for(j=0; j<10; j++)
				{
				printf(" %d \n",j);
				nanosleep(&temps,NULL);
				}
				system("ps -f");
				printf("Id Fils: %d\n",getpid());
				return 2;
 
                         break;
 
 
               default : /* Code du père*/
				for(f=0;f<a; f++){
				if ( ( pid=wait(&status) ) == -1)
					exit(errno);
 
                         printf("Fin du processus père de pid %d.\n", getpid());
}
       }
 
}
 
       exit(0);
 
}