Добавил:
Fragga
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:лабораторки по ОС препод Челноков / 2семестр / wi1 / Esin / l3_l4 / l3
.c#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
extern int s1(int),s2(int);
int pid1,pid2;
int main()
{
pid1=getpid();
if((pid2=fork())==0)
{
pid2=getpid();
signal(SIGUSR2,(void*)&s2);
kill(pid1,SIGUSR1);
while(1)
{
}
}
signal(SIGUSR1,(void*)&s1);
while(1)
{
}
return(0);
}
int s1(int sn)
{
signal(SIGUSR1,(void*)&s1);
printf("ping\n");
sleep(1);
kill(pid2,SIGUSR2);
return(0);
}
int s2(int sn)
{
signal(SIGUSR2,(void*)&s2);
printf("pong\n");
sleep(1);
kill(pid1,SIGUSR1);
return(0);
}