vfork 手册页说“信号处理程序是继承的,但不是共享的。”
突然间,我对共享信号处理程序的含义以及继承信号处理程序的含义感到很困惑。
我所知道的是,当我们通过 fork() 创建一个新进程时,子进程会安装相同的信号处理程序,直到子进程为某些信号指定自己的处理程序或不调用 exec()。在线程的情况下,因为进程保持不变,并且信号被发送到进程,所以它是整体接收信号的进程(尽管我不确定多线程进程会发生什么)。
但我仍然想了解共享信号处理程序与继承信号处理程序之间的区别
最佳答案
信号处理程序是继承的。
这意味着子级继承与父级相同的处理程序。
信号处理程序不共享。
调用父级的处理程序与调用子级的处理程序不同。正如手册页所述,信号在传递给子级之后传递给父级:因此有不同的调用。
关于linux - Linux 上的共享与继承信号处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23181282/