#include "sys/types.h"
#include "unistd.h"
#include "signal.h"
pid_t pid;
void sigusr1_handler(int n)
{
if(pid > 0)
printf("AAAA\n");
else if(pid == 0)
printf("BBBB\n");
}
void sigalrm_handler(int n)
{
static int turn = 0;
if(turn == 0)
raise(SIGUSR1);
else
kill(pid, SIGUSR1);
turn = (turn+1)%2;
}
int main()
{
signal(SIGUSR1, sigusr1_handler);
pid = fork();
if(pid == 0)
{
while(1)
pause();
}
else if(pid > 0)
{
signal(SIGALRM, sigalrm_handler);
while(1)
{
alarm(1);
pause();
}
}
return 0;
}
先放着。。以后补充自己关于信号知识的理解