これからは、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);
}
出力は次のとおりです。
[親] ローカル値アドレスは 0x7fff5277baa8 [子] ローカル値アドレスは 0x7fff5277baa8
これについて何か考えはありますか?