单选题
1分
对于如下C语言程序int main(){printf("Hello World\n");fork();printf("HelloWorld\n");fork();printf("H...
对于如下C语言程序
int main()
{
printf("Hello World\n");
fork();
printf("HelloWorld\n");
fork();
printf("Hello World\n");
}
在UNIX操作系统中正确编译链接后,其正确的运行结果是
int main()
{
printf("Hello World\n");
fork();
printf("HelloWorld\n");
fork();
printf("Hello World\n");
}
在UNIX操作系统中正确编译链接后,其正确的运行结果是
参考答案: B
参考解析: 【解析】 函数fork()的作用是通过系统调用创建一个与原来进程几乎完全相同的进程。但是被创建的子进程的起始执行指令地址却是从原进程代码的所执行fork()函数之后开始执行的。如若标记上述代码的第1个fork()为f1,第2个fork()为f2,则父进程调用f1产生的子进程代码与父进程一样但起始执行指令地却是从f1之后开始执行的。按此方法计算则打印行数为1+f1+1+f2 +1行 ,f1执行后打印行数为1+f2+1行,f2执行后打印行数为1行。合计7行。所以选B选项。