【发布时间】:2019-09-18 01:57:20
【问题描述】:
有人问我关于创建一个程序,其中一个进程生成 32 个子进程的问题。我在下面创建了程序(正确吗?),但是您知道如何使用 pstree 命令显示这些进程的树吗?感谢任何帮助。
#int main()
{
for(int i = 0; i < 32; ++i)
{
if(fork() == 0)
{
sleep(5);
return 0;
}
}
for(int i = 0; i < 32; ++i)
{
waitpid(-1, NULL, 0);
}
return 0;
}:
【问题讨论】:
-
你读过 pstree 的手册页吗? man7.org/linux/man-pages/man1/pstree.1.html
-
顺便说一句,为什么
waitpid()在外部单独的for循环中?您可以将waitpid()语句保留在if的else块中。 -
如@KillianG 所述。你应该看看 pstree 的手册页。相同的进程被组合在一起,因此如果您使用父进程 id 运行 pstree,您将获得类似以下测试的输出───32*[test]。
-
Achal,您能否说明如何使用 else 而不是单独的 for 循环来重写它?提前致谢!