本文介绍了多少进程本计划创建,包括最初的父进程?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想弄清楚这个程序是如何创建的进程,包括最初的父进程。
正确的答案应该是9,但我不明白为什么,答案是9。如何在这9进程创建的?在此先感谢!

 的#include<&stdio.h中GT;
#包括LT&;&unistd.h中GT;
...
诠释的main()
{
  将为pid_t约翰;
  约翰= fork()的;  如果(约翰== 0){
      叉子( );叉子( );叉子( );
  }
/ *消耗另一个进程的资源* /
/ *不创建一个新的进程。 * /
消费();消费();   返回0;
}


解决方案

 约翰= fork()的; //叉一个新的进程,我们现在有2个。  如果(约翰== 0){//子进程中的if语句去
      叉子( ); //子进程叉2个进程
      叉子( ); // 2进程继续叉,所以我们有2个。
      叉子( ); // 4个进程继续分叉,所以我们有4个。
  }
  //到这里,第一叉的子过程现在是8流程
  //加入第一父进程,即总共9。

I'm trying to figure out how many processes this program creates, including the initial parent process.The correct answer should be 9, but I don't understand why the answer is 9. How are these 9 processes created? Thanks in advance!

#include <stdio.h>
#include <unistd.h>
…
int main()
{
  pid_t john;
  john = fork( );

  if (john == 0) {
      fork( ); fork( ); fork( );
  }
/* Consume resources of another process */
/* This does NOT create a new process. */
Consume( ); Consume( );

   return 0;
}
解决方案
  john = fork( ); //fork a new process, we have 2 now.

  if (john == 0) {// child process go in the if statement
      fork( );   //child process fork to 2 processes
      fork( );   //2 processes continue to fork,so we have 2 more. 
      fork( );   //4 processes continue to fork, so we have 4 more.
  }
  //up to here, the child process of the first fork is now 8 processes
  //adding the first parent process, that is 9 in total.

这篇关于多少进程本计划创建,包括最初的父进程?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 15:39