嗨
我正在写一个服务器的一部分,它应该派遣一些其他的子进程。
因为我想等一些进程,并且在不等待完成的情况下调度其他进程,我使用双叉进行第二种进程(从而避免了僵尸进程)。
问题是,我的服务器拥有大量的内存,所以分叉需要很长时间(甚至是在Linux中使用的copy-on-write fork,只复制分页表)
我想用vfork替换fork() (),对于第二个分支来说很容易(因为它只能在子进程中调用execve()),但我找不到可以替换第一个分支的任何方法。
有谁知道我该怎么做?
谢谢!双叉使用vfork
服务器是一个用C++编写的linux(RH5U4)。
谢谢SoapBox。但我正在寻找一种解决方法,它将允许我在不增加叉子成本的情况下使叉子变成双叉() – 2010-04-11 16:34:55
'_exit'不是'exit'。 'vfork'之后你绝对不能调用'exit'。 – 2011-07-05 04:08:49