📜  门| GATE CS 2019 |问题 26

📅  最后修改于: 2021-09-24 05:24:41             🧑  作者: Mango

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

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

创建的子进程总数为 __________ 。

注意 –这是数字类型问题。

(一) 31
(乙) 63
(三) 5
(四) 6答案:(一)
解释:条件“if”仅在 i = 0, 2, 4, 6, 8 时满足。因此,“fork()”将调用 5 次。

创建的进程总数是,

= 2number of fork() 

这些进程总是只有一个父进程,剩下的将是子进程。

因此创建的子进程数是,

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

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