当前位置:首页 > 4444临时 > 正文内容

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

4444临时3个月前 (02-02)

```c int main() {    pid_t pid;    int a = 5;    pid = fork();    if(pid == 0)        printf("This is the son process, a = %d\n", a + 1);    else        printf("This is the dad process, a = %d\n", a - 1); } ``` 在UNIX操作系统中正确编译链接后执行,其运行结果是

This is the son process, a = 6
This is the dad process, a = 4

This is the son process, a = 6

This is the dad process, a = 4

This is the dad process, a = 6
This is the son process, a = 4


答案


This is the son process, a = 6
This is the dad process, a = 4


解析


在UNIX类操作系统中,父进程通过调用fork()函数创建子进程,子进程获得与父进程地址空间相同的一份拷贝,包括文本、数据、堆栈段、以及用户栈,fork函数被调用一次,却返回两次:一次是在调用进程中,一次是在新创建的子进程中,所以题目程序中的变量a,在父进程和子进程中存在2份,初始值都是5,程序运行后子进程输出a = 6,父进程输出a = 4。故本题答案选择A选项。涉及考点为第3章进程线程模型。


转载请注明出处。

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

相关文章

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

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

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

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

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

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

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

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

[12][8][单选]当使用进程创建原语创建进程时,下列哪一个选项表示创建的顺序是正确的

申请PCB,填写PCB,放入运行队列申请PCB,填写PCB,放入就绪队列申请PCB,申请内存,填写P...

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

void *th(void *arg{printf("Hello World";...