虚拟地址又被称作逻辑地址、线性地址等
5 int main()
6 {
7 int num=10;
8 printf("num=%d , before address is:%p\n",num,&num);
9
10 pid_t id=fork();
11
12 if(id==0)
13 {
14 num++;
15 printf("num=%d , child num address is %p\n",num,&num);
16 }
17 else
18 {
19 printf("num=%d , father num address is %p\n",num,&num);
20 }
21 return 0;
22 }
在linux环境下运行上面的代码,会打印出下面的结果
我们可以看到子进程会对num的值进行修改,父进程和子进程中num使用的地址空间是相同的,但是如果二者的地址相同,任意一个进程对该地址内存储的数据进行修改后,另一个进程再访问时,访问的应该就是被修改