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

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

[23]2年前 (2025-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 + 2; 在 UNIX 操作系统中正确编译链接执行后,其运行结果为:

This is the son process, a=0

This is the dad process, a=2

答案

This is the son process, a=0

This is the dad process, a=2


解析

在 UNIX 类操作系统中,父进程通过调用 fork(函数创建子进程,子进程获得与父进程地址空间相同的一份拷贝,包括文本、数据和堆栈段,以及用户栈。fork(函数被调用一次,返回两次:一次是在父进程中,一次是在新创建的子进程中。所以程序中的变量 a,在父进程和子进程中存在两份,初始值都是 1。程序运行后子进程输出 a=0,父进程输出 a=2。


转载请注明出处。

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

相关文章

[23][1][单选]操作系统的任务之一是向用户提供各种服务功能。下列对服务功能的描述中,哪一项是正确的?

满足用户的各种应用需求提供互联网所需的网络交换服务向用户提供 CPU 和内存等各类资源向开发人员提供...

[23][2][单选]处理器的状态由系统态到用户态的转换是通过下列哪一种方式实现的?

使用特权指令系统调用修改程序状态字执行访管指令答案修改程序状态字解析处理器处于系统态是可以执行硬件所...

[23][3][单选]中断系统是现代计算机系统的核心机制之一。下列叙述中,哪一项是正确的?

中断系统是由硬件独立实现的中断系统是由软件独立实现的中断系统是由硬件和软件分别独立实现的中断系统是由...

[23][4][单选]系统调用的返回值是通过下列哪一种方式传递的?

通过全局变量通过临时文件通过共享存储区通过专用寄存器答案通过专用寄存器解析在系统调用的参数传递过程中...

[23][8][单选]下列哪一种操作不是进程控制原语?

激活进程挂起进程唤醒进程切换进程答案切换进程解析用于进程控制的原语一般有:创建、撤销、挂起、激活进程...