当前位置:首页 > 文章 > 四级网络工程师 > 正文内容

对于如下 C 语言程序

四级网络工程师3个月前 (06-19)
int main()
{
int i;
for ( i = 0; i < 1;i++)
{
fork();
printf("Hello World\n");
}
}



在 UNIX 操作系统中正确编译链接后,其运行结果为


共打印出 2 行 Hello World

共打印出 4 行 Hello World

共打印出 6 行 Hello World

共打印出 8 行 Hello World


答案    

共打印出 2 行 Hello World



解析    

程序的执行流程如下:


进入循环,循环条件i < 1仅在i为0时满足,因此循环体只执行一次。

在循环体内,首先调用fork()函数创建一个子进程。此时,存在一个父进程和一个子进程。

之后,父子进程都会执行printf("Hello World\n");。

由于循环只执行了一次,每个进程(父进程和子进程)都只调用了一次printf。因此,无论从循环的角度还是fork()调用的角度来看,每次fork()之后确实有两个进程,但关键在于理解循环只执行了一轮,限制了fork()的调用次数。


所以,正确的输出是:


共打印出 2 行 Hello World

相关文章

在组成计算机系统的各类资源中,主要包含有硬件部件以及

代码和数据键盘鼠标和显示器操作系统各类应用软件答案    代码和数据解析...

在操作系统的结构设计中,微内核结构 C/S 表示的是

整体式结构层次结构分布式结构客户机/服务器结构答案    客户机/服务器结构...

下列关于操作系统的叙述中,正确的是

操作系统作为系统软件,为用户提供了高效使用计算机的接口操作系统是软件,它可以做任何需要软件做的工作操...

共享性是操作系统的特征之一,下列哪种软件资源不可以同时共享

内存分配模块可重入代码SP00Ling 系统log()函数子程序答案    ...

共享性是操作系统的特征之一,所谓“共享性”是指

任何时候所有资源均可被共同占有使用在一定的策略控制下,按不同资源类型共同占有使用在一定的策略控制下,...