大家好,新手问问题,谢谢!
linux_c吧
全部回复
仅看楼主
level 3
a2213356 楼主
void pr_mask()
{
sigset_t sigset;
if(sigprocmask(0, NULL, &sigset)<0)
{
printf("sigprocmask error");
exit(0);
}
if(sigismember(&sigset, SIGINT))
printf("SIGINT \n");
if(sigismember(&sigset, SIGTERM))
{
printf("SIGTERM \n");
exit(0);
}
}
以上是打印信号掩码的代码,main函数就不带上了,也就注册信号而已
问题如下
我按ctrl+c的时候,终端能打印出SIGINT
&sigset不是指向被屏蔽的信号吗?既然sigint信号在这个被屏蔽的信号集里面,为什么我按ctrl+c的时候信号还能被捕捉到呢?不是被屏蔽了吗?
2014年04月08日 12点04分 1
level 3
a2213356 楼主
是不是调用了signal之后,那个被注册的信号就被阻塞了?
2014年04月08日 14点04分 2
1