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);
} |
Partager