以下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)是正确的。
这个问题的测验