📜  门| GATE CS 2019 |简体中文问题26

📅  最后修改于: 2021-06-28 18:21:16             🧑  作者: Mango

以下C程序在Unix / Linux系统上执行:

#include 
  int main() {
    int i;
    for (i = 0; i < 10; i++)
      if (i % 2 == 0) fork();
    return 0;
  }

创建的子进程总数为__________。

注–这是数值类型的问题。

(A) 31
(B) 63
(C) 5
(D) 6答案: (A)
说明:仅当i = 0、2、4、6、8时才满足条件“ if”。因此,“ fork()”将调用5次。

创建的进程总数为

= 2number of fork() 

这些流程中始终只有一个父流程,其余的将是子流程。

因此,创建的子进程数为

= 2number of fork() - 1
= 25 - 1
= 32 - 1
= 31

因此,选项(A)是正确的。
这个问题的测验