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 57 58 59 60 61 62 63 64 65
|
#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
#include<signal.h>
int envoiepere(int pid)
{
kill(pid,SIGUSR1);
printf("Pong\n");
}
int envoiefils(int pid)
{
kill(pid,SIGUSR2);
printf("Ping\n");
}
main(){
int ppid,a=1,b=1,i;
pid_t pid_du_fils_a,pid_du_fils_b;
ppid=(int)getpid();
printf("Tiens et si je pondais un mome pour jouer au Ping Pong\n");
signal (SIGUSR2,envoiepere(pid_du_fils_a));
pid_du_fils_a=fork();
for(i=1;i<2;i++){
if (pid_du_fils_a!=0){
printf("Vas-y commence mon fils\n");
a=0;
}
}
if (pid_du_fils_a!=0){
sleep(1);
pid_du_fils_b=fork();
if (pid_du_fils_b==0){
for (;;){
printf("Vas-y Papa\n");
sleep(2);
}
}
if (pid_du_fils_b!=0){
for(i=0;i<10;i++){
sleep(2);
signal (SIGUSR2,envoiepere(pid_du_fils_a));
}
printf("Creuvez misérable\n");
kill((int)pid_du_fils_a,9);
kill((int)pid_du_fils_b,9);
}
}
else if (pid_du_fils_a==0){
sleep(0);
envoiefils(ppid);
sleep(0);
for(;;){
sleep(1);
signal (SIGUSR1,envoiefils(ppid));
}
}
} |
Partager