【发布时间】:2011-05-10 20:07:04
【问题描述】:
我在代码中做错了,其他进程向它发送了 SIGUSR2 信号:
sigset_t sigset;
sigemptyset(&sigset);
sigaddset(&sigset, SIGILL);
sigaddset(&sigset, SIGUSR2);
sigwait(&sigset, &received);
XCode 注意到收到 SIGUSER2(31) 信号,但收到 = SIGILL(4)(或集合中的最小信号)。
为什么会这样?我哪里错了?
现在,它看起来像这样:
sigset_t sigset;
sigemptyset(&sigset);
sigaddset(&sigset, SIGILL);
sigaddset(&sigset, SIGUSR2);
sigprocmask(SIG_BLOCK, &sigset, 0);
sigwait(&sigset, &received);
if(received == SIGUSR2) {
//...
} else if(received == SIGILL) {
//...
}
还是不行。
【问题讨论】: