我正在使用 sigprocmask,如下所示:
void mask(){
sigset_t new_set,old_set;
sigemptyset(&new_set);
sigaddset(&new_set,SIGALRM);
sigprocmask(SIG_BLOCK, &new_set, &old_set);
}
令我惊讶的是,一个打印大列表的函数以某种方式被信号中断,即使我在开头调用了 mask() 。看起来好像掩码失败了,因为我的函数没有调用任何其他函数,因此在它的运行中不会发生 unmask() 。什么会导致 sigprocmask 失败?