Bonjour
J'ai écris un programme qui permet de créer un processus fils, d'afficher le PID et l'état de chaqun des deux processus (le père et le fils), seulement le processus fils va faire une tâche : il va appeler (ou executer) un autre programme que j'ai écris.
Le problème : après la compilation du premier programme j'ai eu les erreurs suivantes :

processu.c: In function ‘main’:
processu.c:29: warning: missing sentinel in function call
Si quelqu'un peut m'aider pour résoudre ce problème ?
Merci d'avance.

Voici le code source des deux programmes :

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
56
 
 /*------code source de processus.c:-------*/
 
 #include<unistd.h>
 #include<stdio.h>
 #include<stdlib.h>
 int fils,pidfils,iden;
 char etat1[1024];
 char etat2[1024];
 main()
 {
 int pid_p;
 pid_p=getpid();
 printf("pere: je suis le processus pere mon pid=%d\n",getpid());
 sleep(1);
 sprintf(etat1,"ps -o s -p%d",pid_p);
 system(etat1);
 iden=fork();
 if(iden==-1)
 {
 printf("erreur de creation de processus fils\n");
 exit(1);
 }
 if(iden==0)
 {
 int pid_f;
 pid_f=getpid();
 printf("\nfils: je suis le processus fils mon pid=%d\n\n",pid_f);
 sprintf(etat2,"ps -o s -p%d",pid_f);
 system(etat2);
 sleep(1);
 execl("prog","prog",0);
 }
 else
 {
 printf("\npere: maintenant je dors 5 secondes\n");
 sleep(5);
 printf("pere: je suis reveille\n\n");
 pidfils=wait(&fils);
 printf("pere: mon processus fils termine son execution et son pidfils=%d\n\n",pidfils);
 }
 }
 
 /*-----------code source de prog.c-----------*/
 #include<sys/types.h>
 #include<sys/wait.h>
 
 main()
 {
 printf("\n\t*************PROGRAMME EXECUTE PAR LE FILS******************\n");
 printf("\nle programme: je suis le programme executer par le fils\n");
 printf("\nle programme: l'identificateur de mon pere ppid=%d\n",getppid());
 printf("\nle programme: le fils va vous donnez la date d'haujourd'huit\n");
 printf("\nle programme:\t");
 execlp("/usr/bin/date","/usr/bin/date",NULL);
 }