为什么fork进程从头开始?

问题描述

我正在尝试了解 fork 的工作原理。使用此代码示例

#include <stdio.h>
#include <unistd.h>

int main() {
  char  a = 7;
  char b = 0;
  for (char i = 0; i < 5; i++){
    
    putchar(a+48);
        putchar(b+48);
            putchar(i+48);
    putchar(' ');
    fork();
    b = 3;
  }
  return 0;
}

我得到了这个结果:

700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734 700 731 732 733 734

似乎每个新的 fork 进程都是从主进程的开始创建的,但我希望新进程从 fork 调用的同一个地方继续。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)