【发布时间】:2019-04-30 23:41:39
【问题描述】:
我有以下代码,所有系统调用在运行时都成功:
#include <unistd.h>
int main(int argc, char *argv[])
{
for (; argc > 1; argc--) {
if (0 == fork()) {
(void) fork();
}
}
}
我需要找出我将获得多少个子进程。 如果我应用一个参数,fork() == 0 中的 fork() 函数将生成一个父进程和一个子进程,并且 (void) fork() 相同 => 2 个子进程 如果我应用 2 个参数,则该数字将翻倍。 这是正确的想法吗?
【问题讨论】:
-
这样做的目的是什么?
-
试一试并告诉我们答案 - pid 的 printf 会很有用
-
找出我将获得多少子进程。否则只是一个程序
-
最简单的方法是在 main() 的末尾加上
puts("Malk");并以./foo | wc -l开头