相关疑难解决方法(0)

为什么子进程和父进程的变量地址相同

这是我的代码

int main()
{
  pid_t pid;
  int y = 3;  
  if ( (pid = fork()) <0 )
   return -1;;

  if( pid == 0 )  /* child */
  {
    printf(" before: %d %p\n", y, &y );
    y *= 10;
    printf("after: %d %p\n", y, &y );
  }
  else /* father */
  {
   sleep(1);
   printf("father: %d %p\n" , y , &y );

  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

该程序的输出如下:

before: 3 ffbff440
after: 30 ffbff440
father: 3 ffbff440
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么孩子和父母的变量的地址相同但价值不同?

c unix fork copy-on-write

8
推荐指数
1
解决办法
3956
查看次数

标签 统计

c ×1

copy-on-write ×1

fork ×1

unix ×1