【发布时间】:2021-06-27 15:46:59
【问题描述】:
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
int value = 5;
int main(){
pid_t pid;
pid = fork();
if(pid ==0){
value+=15;
printf("CHILD: value = %d\n",value);
return 0;
}
else if(pid>0){
wait(NULL);
printf("PARENT: value = %d",value);
return 0;
}
}
这段代码的执行结果如下:
CHILD: value = 20
PARENT: value = 5
然后,在这个过程中,发生了两个编译过程,据了解,第一个代码和fork复制的代码分别被执行了。
但是为什么没有两个cmd窗口,而是一个窗口有两个结果值呢?我想找到这个问题的答案。
【问题讨论】:
标签: process operating-system fork