有什么区别fork() http://pubs.opengroup.org/onlinepubs/9699919799/functions/fork.html and vfork() http://man7.org/linux/man-pages/man2/vfork.2.html? Does vfork()
返回像fork()
.
的意图vfork
如果您只想执行一个操作,则可以消除复制整个过程映像的开销exec*
在孩子身上。因为exec*
替换子进程的整个映像,复制父进程的映像是没有意义的。
if ((pid = vfork()) == 0) {
execl(..., NULL); /* after a successful execl the parent should be resumed */
_exit(127); /* terminate the child in case execl fails */
}
对于其他用途,vfork
是危险且不可预测的。
然而,对于大多数当前的内核(包括 Linux)来说,其主要优点是vfork
因路而消失fork
已实施。而不是复制整个图像fork
执行时,使用写时复制技术。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)