我正在尝试使用fork编写一个C程序

时间:2016-01-31 06:35:36

标签: c

这段代码有什么作用?

if(fork()==0) {
   if(fork()==0)
    while(1);
  }  while(1)

我的意思是它会创建多少个子进程? if(fork()==0)是否会创建新的子流程?

1 个答案:

答案 0 :(得分:-1)

/*1*/ if(fork()==0) {

这会使孩子处理该过程,孩子进入父母继续的阻止。

/*2*/  if(fork()==0)

这儿孩子生孩子,我称之为孙子 孙子进入if

的真正分支
/*3*/ while(1);

孙子在此期间结束,孩子跳过这个并退出街区

/*4*/ }  while(1)

孩子走出街区并最终在此过程中,父母绕过街区并最终到达这里。

因此,创建了一个子孙和一个孙子的两个后代进程。