Ram*_*man 1 c operating-system fork
我有以下代码:
#include<stdio.h>
#include<unistd.h>
int main()
{
int a=0;
printf("before: %d %p\n",a,&a);
int t=fork();
if(t==0)
{
a=a+5;
printf("child: %d %p\n",a,&a);
}
else
{
a=a+10;
printf("parent: %d %p\n",a,&a);
}
//printf("both: %d %p\n",a,&a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么所有地址都打印相同?我想在调用fork时会创建一个新的变量副本.它与虚拟地址和物理地址有什么关系吗?如果是这样,相同的虚拟地址如何映射到不同的物理地址?
归档时间: |
|
查看次数: |
84 次 |
最近记录: |