gpt4 book ai didi

c - 是否有任何公式可以知道 fork() 如何近乎完美地复制当前进程?

转载 作者:太空宇宙 更新时间:2023-11-04 02:04:56 26 4
gpt4 key购买 nike

#include <stdio.h>
main()
{
int i, n=1;

for(i=0;i<n;i++) {
fork();
printf("Hello!");
}
}

如果我设置 n=1,我会感到困惑,它会打印 2 次 Hello。

  • 如果 n=2,则打印 8 次 Hello
  • 如果 n=3,它打印 Hello 24 次..
  • 等等..

最佳答案

没有单一的“公式”,因为不同的操作系统以不同的方式完成它。但是 fork() 所做的是复制该进程。通常涉及的粗略步骤:

  • 停止当前进程。
  • 新建一个进程,并初始化或复制相关的内部结构。
  • 复制进程内存。
  • 复制资源,如打开的文件描述符等。
  • 复制 CPU/FPU 寄存器。
  • 恢复两个进程。

关于c - 是否有任何公式可以知道 fork() 如何近乎完美地复制当前进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21858905/

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