Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我在代码开头调用 sigaction,
sigaction(SIGPIPE, &pipe_act, NULL);
如果我收到 sigpipe,在执行 pipe_act 后,安装的处理程序仍然是 pipe_Act,还是自动为 sigpipe 设置默认处理程序?
这取决于您的标志(pipe_act->sa_flags)是否包括SA_RESETHAND. 如果是,则信号处理程序是“一次性的”,并在被调用后被删除(即处理程序被重置为默认处理程序),但如果不是,则处理程序保持原位,直到您手动更改它。
pipe_act->sa_flags
SA_RESETHAND