0

これからは、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

これについて何か考えはありますか?

4

2 に答える 2