下面代码是比较简单的信号处理的方法。
一共接收了两个用户定义的信号。
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <signal.h>
typedef void (*sighandler_t)(int);
static void sig_usr(int signo)
{
if (signo == SIGUSR1)
printf("received SIGUSER/n");
else if (signo == SIGUSR2)
printf("received SIGUSR2/n");
else
printf("received signal %d/n", signo);
}
int main()
{
int i = 9;
if (signal(SIGUSR1, sig_usr) == SIG_ERR)
perror("signal error");
if (signal(SIGUSR2, sig_usr) == SIG_ERR)
perror("signal error");
for(;;)
{
pause();
printf("something happening.../n");
}
return 0;
}