c - sigaction : restore handler or not?

标签 c unix signals

如果我在代码开头调用 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/

相关文章:

c - 如何在进度条中显示文本?

linux - shell脚本中 "&&"内部变量和外部变量的区别

可以通过系统调用设置局部变量吗?

matlab - 绘制声音信号

gtk - 如何断开 Gtk 的信号?

c++ - 预编译 header 选项会导致此错误吗?

C memcpy 未按预期运行

c++ - 在 UNIX 中使用 _exit 时,未清理的资源会发生什么情况?

c - 使用系统调用读取 "space"[在 Unix 中使用 C]

c - 指针和指针指向的对象