linux - Linux 上的共享与继承信号处理程序

标签 linux

vfork 手册页说“信号处理程序是继承的,但不是共享的。”

突然间,我对共享信号处理程序的含义以及继承信号处理程序的含义感到很困惑。

我所知道的是,当我们通过 fork() 创建一个新进程时,子进程会安装相同的信号处理程序,直到子进程为某些信号指定自己的处理程序或不调用 exec()。在线程的情况下,因为进程保持不变,并且信号被发送到进程,所以它是整体接收信号的进程(尽管我不确定多线程进程会发生什么)。

但我仍然想了解共享信号处理程序与继承信号处理程序之间的区别

最佳答案

信号处理程序是继承的。

这意味着子级继承与父级相同的处理程序。

信号处理程序不共享。

调用父级的处理程序与调用子级的处理程序不同。正如手册页所述,信号传递给子级之后传递给父级:因此有不同的调用。

关于linux - Linux 上的共享与继承信号处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23181282/

相关文章:

python - 我无法在 python 中安装 mysqlclient 和 pillow

php - 一种使用子域获取相对路径的方法?

python - 附加到 LD_LIBRARY_PATH 会破坏 python

linux - 我的 shell 脚本中的 URL 中断

linux - 如果缓冲区大小太小而无法容纳 read() 系统调用返回的读取数据,会发生什么情况?

linux - WebRTC构建 ARM

linux - 服务 httpd 错误

linux - 如何选择特定的行和列

linux - 存储网络数据包

linux - 在汇编程序中编写 linux 内核模块时的内存访问