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

[11][9][单选]对于如下 C 语言程序

[11]9个月前 (02-02)
int main(
{
    printf("Hello World\n";
    fork();
    printf("Hello World\n");
    fork();
    printf("Hello World\n";
}

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

共打印出 6 行 Hello World

共打印出 7 行 Hello World

共打印出 8 行 Hello World

共打印出 9 行 Hello World


答案

共打印出7行Hello World


解析

`fork()`函数执行的特点是,只被调用一次,却会返回两次,一次是在调用进程(父进程)中,一次是在新创建的子进程中。如果标记第1个`fork()`函数为f1,第2个`fork()`函数为f2。则父进程调用f1产生的子进程代码与父进程一样,但起始执行指令是从f1开始执行的,所以共打印行数为1+f1+1+f2 +1行。调用f1执行后打印行数为1+f2+1行,调用f2执行后打印行数为1行,所以共打印行数为7行。 【涉及考点】 第3章 进程线程模型


转载请注明出处。

本文链接:http://www.pythonopen.com/?id=6063

相关文章

[11][2][单选]用户进程在实现系统调用时,下列哪种方法不能用于传递参数

通过寄存器传递通过堆栈传递通过指令自带传递通过变量传递答案通过变量传递解析系统调用传递参数方法有陷入...

[11][3][单选]在操作系统中,既可以在内核态下运行又可以在用户态下运行的指令是

置程序计数器清指令寄存器清溢出标志置移位方向标志答案置移位方向标志解析特权指令包括输入输出指令、停机...

[11][6][单选]下列进程控制块的组织方式中,哪一种是错误的

B + 树方法线性方法索引方法链接方法答案B + 树方法解析进程由进程控制块、数据和进程控制块(PC...

[11][10][单选]有如下 C 语言程序

void * th_f(void * arg) { &n...

[11][11][单选]在民航网络订票系统中,相同航班订票人发起的订票进程其相互之间的关系是

同步关系互斥关系前驱关系后驱关系答案互斥关系解析相同航班中的机票相对订票进程而言是临界资源,是要互斥...