首页 > 代码库 > fork 与 vfork

fork 与 vfork

fork 函数复制父进程(包括父进程的地址空间)产生子进程 在父进程返回子进程ID,在子进程本身返回0。

fork一般有两个用处:

1、网络服务进程等待请求,新请求到来,fork一个子进程处理,父进程继续监听。

2、子进程从fork返回立即调用exec执行其他程序,有的系统将fork之后立即执行exec两个操作结合为一个,称为spawn。

vfork 也产生子进程,目的是执行exec,但是不需要复制父进程地址空间,因为它马上执行exec,所以它更快。

vfork与fork还有一个区别是 vfork之后子进程先执行,执行exec或exit之后父进程才执行,而fork就不一定了。

fork 与 vfork