有多少个进程,有fork函数?

时间:2014-11-09 09:07:26

标签: c variables process operating-system fork

使用这些fork函数创建了多少个procces?

int main(){
    c2=0;
    c1=fork();
    if(c1==0)
       c2=fork();
    fork();
    if(c2>0)
    fork();
}

在这个网站上,我之前已经看过有关fork函数的问题,但这个是不同的。这里我们有c1,c2这些变量意味着什么?

2 个答案:

答案 0 :(得分:1)

您需要解决此问题的方法是绘制一棵树。 fork()调用的组合将创建一个具有父/子关系的进程树。

您需要考虑的是fork()返回父进程中的PID和子进程中的0。你在哪里

 if (cm > 0)
    ford () ;

只会在父进程中执行。

   if (cn == 0)
      fork () ; 

只会在子进程中执行。

答案 1 :(得分:0)

我不认为这个问题值得贬低。

c2 = 0;
   c1 = fork();      /* fork number 1 */
   if (c1 == 0)
      c2 = fork();   /* fork number 2 */
   fork();           /* fork number 3 */
   if (c2 > 0)
      fork();        /* fork number 4 */

它的图是,

enter image description here