1,在fork还没实现copy on write之前,Unix设计者很关心fork之后立刻执行exec所造成的地址空间浪费,所以引入了vfork系统调用。
2,vfork有个限制,子进程必须立刻执行exit或者exec函数。
即使fork实现了copy on write,效率也没有vfork高,但是我们不推荐使用vfork,因为几乎每一个vfork的实现,都或多或少存在一定问题。
结论:
1.fork子进程拷贝父进程的数据段
vfork子进程与父进程共享数据段
2.fork父,子进程的执行次序不确定,vfork子进程先运行,父进程后运行。
vfork只要应用场景在 通过一个应用程序执行命令