我想通过以下示例了解孩子的地址空间是否影响父母的地址空间。因此,父级将孩子的更改后的值设为15还是值5。我了解到孩子的地址空间不受父级孩子的地址空间的影响,但是在这种情况下输出是什么?值的输出是否将为20,因为该值在孩子方面增加了15?
int value = 5;
int main(){
pid_t pid;
pid = fork();
if (pid == 0){
value +=15;
return 0;
}
else if(pid > 0){
wait(NULL);
printf("Parent: value = '%d', value); // Line A
return 0;
}
}
答案 0 :(得分:0)
由于定义了fork在类似UNIX(请参阅https://en.wikipedia.org/wiki/Fork_(system_call))的系统中的工作方式,因此肯定会输出5,因为child只接收父虚拟内存的副本。 您也可以参考man(2)fork:https://linux.die.net/man/2/fork。