我已经成功地将处理程序函数附加到SIG_INT和SIG_KILL,但现在我希望能够在某个点上“解除绑定”处理程序(准确地说,在分叉之后)。下面是我附加处理程序的方式:
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);interrupt_handler只打印一些东西。
发布于 2011-12-07 03:51:24
您可能希望恢复以前的处理方式:
struct sigaction sa, oldsa;
/* Change it but save previous state. */
sigaction(SIG_INT, &sa, &oldsa);
/* ... */
/* Restore previous stuff. */
sigaction(SIG_INT, &oldsa, NULL);https://stackoverflow.com/questions/8405770
复制相似问题