5 static void CatchSignal(int signum,void (*handler)(int ));
7 void BlockSignals(int block,int signum)
11 sigaddset(&set,signum);
12 sigprocmask(block?SIG_BLOCK:SIG_UNBLOCK,&set,NULL);
16 static void handler(int sig)
19 sigblock(sigmask(sig));
20 printf("got signal\n");
23 static void CatchSignal(int signum,void (*handler)(int ))
27 act.sa_handler = handler;
28 act.sa_flags = SA_RESTART|SA_NODEFER;
30 sigemptyset(&act.sa_mask);
31 sigaddset(&act.sa_mask,signum);
32 sigaction(signum,&act,NULL);
38 CatchSignal(SIGUSR1, handler);