【发布时间】:2011-12-06 19:41:58
【问题描述】:
我已成功地将处理程序函数附加到 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 只打印一些东西。
【问题讨论】:
-
你不能“捕捉”一个 SIGKILL 信号。它总是会终止程序。
-
@Milan:道格·麦克罗伊可以赶上 SIGKILL。 cs.dartmouth.edu/~sinclair/doug
-
@Milan 感谢您的提醒,反正并不真的需要它来捕杀。