从现在开始,我认为在fork()
被调用之后,局部变量被复制到父进程和子进程中,它们是分开的。但是我尝试在不同的进程中获取每个局部变量的地址,结果它们是相同的:
int main(void){
int local = 10;
pid_t childPid;
childPid = fork();
if(childPid == 0 ){
printf("[Child] the local value address is %p\n",&local);
}else if(childPid < 0){
printf("there is something wrong");
}else{
printf("[Parent] the local value address is %p\n",&local);
}
return (EXIT_SUCCESS);
}
输出是:
[Parent] 本地值地址为 0x7fff5277baa8 [Child] 本地值地址为 0x7fff5277baa8
对此有任何想法吗?