【发布时间】:2018-06-11 05:56:54
【问题描述】:
我通过在 C 中组合 fork 命令创建了一个 fork 树。创建树的程序是:
int main(){
(fork()&&(fork()&&(fork()||(fork()&&fork())&&fork())||(fork()||(fork()&&fork()))))||(fork()||(fork()&&fork()));
while(1);
return 0;
}
这个命令写在一个 C 文件中。如何打印此代码创建的进程树?
【问题讨论】:
-
我认为使用诸如
forking()之类的函数,它主要调用fork(),但也会打印相关信息——在fork()之前或之后,或两者兼有——将是一种合理的方式生成您正在寻找的数据。提出它是一个不同的问题。如果您使用pause()而不是while (1);,这对您的系统会更好——这允许其他进程继续进行实际工作。由于进程全部挂起,您还可以安排分析来自ps的输出以获取进程树信息(如果这些进程没有被忙循环占用)。