gpt4 book ai didi

c - fork() 和 vfork() 有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 16:22:06 25 4
gpt4 key购买 nike

fork() 之间有什么区别?和 vfork()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 时复制整个图像,而是使用写时复制技术。

关于c - fork() 和 vfork() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4259629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com