我想在下面的示例中知道孩子的地址空间是否会影响父母的地址空间。因此,父母会将孩子的更改值降至15,还是将获得值5。我了解到孩子的地址空间不受其父母的影响,而是在这种情况下输出是什么?值的输出将为20
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;
}
}
由于叉子的定义在unix-like中工作的定义(请参见https://en.wikipedia.org/wiki/wiki/fork_(system_call(系统,肯定会输出为5,因为孩子只收到父母虚拟内存的副本。您也可以参考男子(2(叉:https://linux.die.net/man/2/fork。