蓝冠官网-蓝冠公司|蓝冠招商注册-蓝冠开户
蓝冠官网(主管Q374919)

蓝冠教程_请问这个问题,有人可以帮忙吗?

依据程式,建立CentOS中加以执行,观察执行结果后研判在标注 A/B/C/D 四处之输出的值将各为什么? 并加以说明。(假设其中各行程原有 pid 值,父行程为 6200,而子行程为 6203)

#include <sys/types.h>

#include <stdio.h>

#include <unistd.h>

[student@iStudent ~]$ ls

a.out test2.c test.c 公共 影片 桌面 音乐

homework.c test3.c 下载 图片 文件 模板

[student@iStudent ~]$ cc homework.c

[student@iStudent ~]$ ./a.out

child: pid = 0child: pid1 = 3074parent: pid = 3074parent: pid1 = 3073[student@iStudent ~]$

int main()

{

pid_t pid, pid1;

/* fork a child process
/
pid = fork();
if (pid < 0) { /
error occurred
/
fprintf(stderr, “Fork Failed”);
return 1;
}
else if (pid == 0) { /
child process
/
pid1 = getpid();
printf(“child: pid = %d”,pid); /
A
/
printf(“child: pid1 = %d”,pid1); /
B
/
}
else { /
parent process
/
pid1 = getpid();
printf(“parent: pid = %d”,pid); /
C
/
printf(“parent: pid1 = %d”,pid1); /
D */

wait(NULL);

}

return 0;

}

以下是我跑出来的结果:

[student@iStudent ~]$ ls

a.out test2.c test.c 公共 影片 桌面 音乐

homework.c test3.c 下载 图片 文件 模板

[student@iStudent ~]$ cc homework.c

[student@iStudent ~]$ ./a.out

child: pid = 0child: pid1 = 3074parent: pid = 3074parent: pid1 = 3073[student@iStudent ~]$

2021-09-13