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

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

[12]5个月前 (02-02)
int main()
{
    pid_t pid;
    int a = 1;
    pid = fork();
    
    if (pid == 0)
        printf("This is the son process, a=%d\n", ++a);
    else
        printf("This is the dad process, a=%d\n", --a);
}

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


This is the son process, a=2
This is the dad process,a=0
This is the son process, a=2
This is the dad process, a=0
This is the dad process,a=2
This is the son process, a=0


答案
This is the son process, a = 2
This is the dad process, a = 0



解析

函数fork(的作用是通过系统调用创建一个与原进程几乎完全相同的进程,对于子进程返回标识符0;对于父进程返回子进程的PID。父进程和子进程拥有各自的局部变量a。初值为1;所以子进程中PID为0,执行的是第1个printf,由a的值为1,先自增再输出值,可知输出的是This is the son process, a = 2;而父进程PID不为0,执行的是第2个printf,由a的值为1,先自减再输出值,可知输出的是This is the dad process, a = 0。故本题答案应选择A选项。

【涉及考点】

第3章 进程线程模型


转载请注明出处。

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

相关文章

[12][1][单选]操作系统作为系统软件,位于软件系统的哪一个层面

硬件之上,支撑软件之下支撑软件之上,应用软件之下应用软件之上,支撑软件之下硬件之上,软件系统之下答案...

[12][2][单选]系统调用与一般过程调用是不同的,下列对它们的调用程序和被调用程序的描述中,哪一个是正确的

过程调用和系统调用的调用程序和被调用程序均位于核心态过程调用和系统调用的调用程序和被调用程序均位于用...

[12][3][单选]处理器中对用户可见的存储器是

程序状态字寄存器数据寄存器程序计数寄存器指令寄存器答案数据寄存器解析处理器一般包括两类寄存器:一类称...

[12][4][单选]中断是指CPU对系统中或系统外发生的异步事件的响应,中断源是指

引起中断的那些事件中断控制器向处理器发出的信号正在执行的程序的暂停点使处理器暂停当前程序而去处理中断...

[12][5][单选]进程有三种基本状态,在允许抢占并采用高优先级优先调度算法的系统中,一个进程从就绪状态转换为运行状态的可能事件是

该进程创建完成进入就绪队列并具有最高优先级该进程等待从硬盘上读取文件数据该进程的优先级由于某种原因被...

[12][6][单选]进程控制块(PCB)的内容一般可以分成调度信息和现场信息两大部分,下列哪一个属于现场信息

当前状态存储信息优先级程序状态字答案程序状态字解析进程控制块PCB的内容一般可以分成调度信息和现场信...