我试了一下信号,发现一个问题,当我给下面的进程发信号SIGUSR1时,进程运行正常,如果发的不是SIGUSR1而是SIGUSR2,进程会被结束掉,不知道为什么?
发信号是手动发的: kill -USR2 16943 (进程的pid = 16943)
系统显示[3]+ user defined signal 2 ./app
我的代码如下:
int handler(int sig, siginfo_t * si, void *data)
{
printf("handler: sig %d\n", sig);
}
main()
{
struct sigaction act;
act.sa_sigaction = handler;
act.sa_flags = SA_NOMASK|SA_ONESHOT;
sigaction(SIGUSR1, &act, NULL);
whil (1)
{
pause();
printf("get signal\n");
}
exit(0);
}