35 lines
599 B
C
35 lines
599 B
C
|
#include <sys/signal.h>
|
||
|
#include <signal.h>
|
||
|
#include <stdio.h>
|
||
|
#include <unistd.h>
|
||
|
#include <stdlib.h>
|
||
|
|
||
|
static void sig_usr(int);
|
||
|
|
||
|
int main(void) {
|
||
|
if(signal(SIGUSR1, sig_usr) == SIG_ERR) {
|
||
|
printf("can't catch SIGUSR1\n");
|
||
|
exit(-1);
|
||
|
}
|
||
|
if(signal(SIGUSR2, sig_usr) == SIG_ERR) {
|
||
|
printf("can't catch SIGUSR2\n");
|
||
|
exit(-1);
|
||
|
}
|
||
|
|
||
|
for(;;)
|
||
|
pause();
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
static void sig_usr(int signo) {
|
||
|
if(signo == SIGUSR1) {
|
||
|
printf("SIGUSR1 received\n");
|
||
|
}
|
||
|
else if(signo == SIGUSR2) {
|
||
|
printf("SIGUSR2 recieved\n");
|
||
|
}
|
||
|
else
|
||
|
printf("error %d received", signo);
|
||
|
}
|