如果我在代码开头调用 sigaction,
sigaction(SIGPIPE, &pipe_act, NULL);
如果我收到sigpipe,执行pipe_act后安装的处理程序仍然是pipe_Act,还是自动为sigpipe设置默认处理程序?
最佳答案
这取决于您的标志 (pipe_act->sa_flags
) 是否包含 SA_RESETHAND
。如果是,则信号处理程序是“一次性”的,并在调用后被删除(即处理程序重置为默认处理程序),但如果不是,则处理程序将保留在原位,直到您手动更改它。
关于c - sigaction : restore handler or not?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12597915/