【发布时间】:2020-04-01 09:37:54
【问题描述】:
我无法理解以下代码。如果我使用单个参数(argc of 2) 运行程序,for fork() 会运行两次并创建 2 个子进程。所以总进程应该是3,对吧?但是我的教授说他们应该是4。我不明白为什么。
如果其中一个子进程创建了另一个 fork(),为什么不创建第二个呢?当我们的程序带有两个参数时会发生什么?有人可以逐步解释吗?
#include <unistd.h>
int main(int argc, char *argv[])
{
int c;
for (c = 0; c < argc; c++) {
(void) fork();
}
return 0;
}
【问题讨论】:
-
在 fork() 中创建的总进程是 = 2^number of fork() ,请参阅此处的说明:geeksforgeeks.org/creating-multiple-process-using-fork
标签: c linux fork system-calls