linux - 除了 SIGINFO 之外没有任何默认操作的信号

标签 linux signals

是否有除SIGINFO以外没有默认 Action 的信号。这link表明即使 SIGPWR 默认的操作也是终止进程。我的要求是仅当存在自定义信号处理程序时才处理信号,否则忽略该信号。

最佳答案

有关所有信号及其默认配置的列表,请参见 man 7 signal。目前我认为这些默认情况下被忽略:

   Signal     Value     Action   Comment
   ──────────────────────────────────────────────────────────────
   SIGCHLD    20,17,18    Ign    Child stopped or terminated
   SIGURG     16,23,21    Ign    Urgent condition on socket (4.2BSD)
   SIGWINCH   28,28,20    Ign    Window resize signal (4.3BSD, Sun)

如您所见,选择确实不多。我想说的是,如果您确定没有子进程,SIGCHLD 可能没问题,或者如果您确定没有可能发出信号的套接字,则 SIGURG那样。最后,SIGWINCH 仅在您确定您的程序没有可调整大小的控制终端时才适用。

关于linux - 除了 SIGINFO 之外没有任何默认操作的信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36859391/

相关文章:

c++ - 链接 C++ 库 : Restbed

c++ - 用户空间缓冲区和内存映射文件之间的 DMA

c - 在信号处理程序本身内部等待信号

python - 为什么 Python 的 Event.wait() 可以在某些系统上被信号中断,而在其他系统上却不能?

qt - 通过 Qt 中的信号/槽设置传递类

linux - 如何使用 Linux shell 脚本显示 USB 驱动器路径和序列号

c++ - 如何使用v4l2loopback将图像渲染到/dev/video0?

c - 从/dev/random (c) 读取随机 double

c - kill 和 signal 的准确性如何?

c++ - 操作系统信号处理循环 - 阻塞或非阻塞读取?