我已经成功地将一个handler函数附加到SIG_INT和SIG_KILL,但是现在我希望能够在某个点(确切地说,在fork之后)对该处理程序“解除绑定”。这是我附加处理程序的方式:
struct sigaction sa;
sa.sa_handler = interrupt_handler;
sigempty(&sa.sa_mask);
sa.sa_flags = SA_SIGINFO;
sigaction(SIG_INT, &sa, NULL);
sigaction(SIG_KILL, &sa, NULL);
中断处理程序只打印某些内容。
最佳答案
您可能需要恢复以前的配置:
struct sigaction sa, oldsa;
/* Change it but save previous state. */
sigaction(SIG_INT, &sa, &oldsa);
/* ... */
/* Restore previous stuff. */
sigaction(SIG_INT, &oldsa, NULL);
关于c - 解除绑定(bind)处理程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8405770/