函数原型:
该函数的功能于 fork 基本相同,二者的区别:
1)调用 vfork 创建子进程并不复制父进程的地址空间,子进程可以通过 exec 函数族,直接启动另一个进程替换自身,进而提高进程创建的效率。
2)vfork 调用之后,子进程先被调度。
eg:
即使子进程中睡了一秒它也一定会等子进程先结束后在运行父进程。
如果在子进程中没有用 exec 系列函数创建进程取代,需要用 exit 系列函数来结束进程。
即使使用 return 0 也结束不了。在64位机中会报段错误。
一般使用 vfork 函数时并不会直接在子进程中写入程序,而是和 exec 系列函数一起使用来提高进程创建的效率。