如果我在代码的开头调用sigaction,
sigaction(SIGPIPE, &pipe_act, NULL);
如果我收到sigpipe,执行pipe_act后,安装的处理程序仍为pipe_Act,或者是否为sigpipe自动设置了默认处理程序?
答案 0 :(得分:2)
这取决于您的旗帜(pipe_act->sa_flags
)是否包含SA_RESETHAND
。如果是,则信号处理程序是“一次性”并在被调用后被删除(即处理程序被重置为默认处理程序),但如果没有,则处理程序保持不变,直到您手动更改它为止。 / p>