sigaction:恢复处理程序与否?

时间:2012-09-26 08:49:41

标签: c unix signals

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

sigaction(SIGPIPE, &pipe_act, NULL);

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

1 个答案:

答案 0 :(得分:2)

这取决于您的旗帜(pipe_act->sa_flags)是否包含SA_RESETHAND。如果是,则信号处理程序是“一次性”并在被调用后被删除(即处理程序被重置为默认处理程序),但如果没有,则处理程序保持不变,直到您手动更改它为止。 / p>