fork 函数复制父进程(包括父进程的地址空间)产生子进程 在父进程返回子进程ID,在子进程本身返回0。
fork一般有两个用处:
1、网络服务进程等待请求,新请求到来,fork一个子进程处理,父进程继续监听。
2、子进程从fork返回立即调用exec执行其他程序,有的系统将fork之后立即执行exec两个操作结合为一个,称为spawn。
vfork 也产生子进程,目的是执行exec,但是不需要复制父进程地址空间,因为它马上执行exec,所以它更快。
vfork与fork还有一个区别是 vfork之后子进程先执行,执行exec或exit之后父进程才执行,而fork就不一定了。