1

如果我设置 sighandler 然后做一个叉子。子进程也会继承 sighandlers 吗?

4

2 回答 2

2

引用 Linuxfork(2) 手册页

fork() 创建的子进程与父进程的区别仅在于其 PID 和 PPID,并且资源利用率设置为 0。文件锁和挂起信号不会被继承。

因此,虽然挂起的信号无法通过fork()操作,但信号处理程序本身却可以。这是有道理的,因为信号属于(父)进程。

虽然不直接相关,但exec()通常跟在 a 之后的 -type 调用fork() 破坏所有信号处理程序,因为正在将全新的可执行文件加载到进程中(覆盖当前为信号提供服务的函数)。

于 2009-07-10T04:20:59.477 回答
0

是的 fork() 将过程分为两部分。所有适用于父进程的资源也可用于子进程。

于 2009-10-07T08:29:21.850 回答