【问题标题】:how to create a chain of processes using fork()? [closed]如何使用 fork() 创建进程链? [关闭]
【发布时间】:2014-01-23 23:49:04
【问题描述】:

我正在尝试创建 10 个进程,但不是扇出,而是在一个链中。所以过程1是

【问题讨论】:

  • 虽然 for 循环不会创建进程的粉丝
  • @user3195820:如果你fork()在刚出生的孩子中,则不会。只需在父级中跳出循环,让子级进入下一次迭代。
  • 哦,在 for 循环的做幼稚的事情部分我可以 fork() 创建新进程?
  • @user3195820 如果您指的是我的回答,它已经这样做了。只有子进程通过for 循环的下一次迭代继续到fork 另一个子进程。父进程总是break out.
  • 类似while(fork() == 0 && ++count < 9) {} 假设初始进程计为1?

标签: c++ c fork


【解决方案1】:

这是未经测试的:

for( int generation = 0 ; generation < 10 ; ++generation )
{
  int pid = fork();
  if( pid != 0 )
  {
     // Do parental things, including wait
     break;
  }
  // Do childish things before forking.
}

每个孩子都知道自己的generation

【讨论】:

    猜你喜欢
    • 2014-02-11
    • 2018-08-25
    • 1970-01-01
    • 2021-12-15
    • 2023-03-22
    • 2021-06-11
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多