假设下面这个程序编译后名字是main,请问这个程序执行后,系统总共会出现多少个main?
附上源码
#include <stdio.h>
#include <stdlib.h>
#include "csapp.h"
int main(int argc,char* argv[])
{
Fork();
Fork()&&Fork()||Fork();
Fork();
printf("*\n");
sleep(5);
}
运行结果如下
所以产生了19个新的进程,一共有20个进程
我们对第二句逻辑关系符的语句进行分析。
我们将其抽象为A&&B||C,就有如下关系图:
因此我们可以画出程序的进程图:
问题答案便显然可知,会产生19个新的main。