2

如果我在代码开头调用 sigaction,

sigaction(SIGPIPE, &pipe_act, NULL);

如果我收到 sigpipe,在执行 pipe_act 后,安装的处理程序仍然是 pipe_Act,还是自动为 sigpipe 设置默认处理程序?

4

1 回答 1

3

这取决于您的标志(pipe_act->sa_flags)是否包括SA_RESETHAND. 如果是,则信号处理程序是“一次性的”,并在被调用后被删除(即处理程序被重置为默认处理程序),但如果不是,则处理程序保持原位,直到您手动更改它。

于 2012-09-26T09:07:34.597 回答