首页 新闻 搜索 专区 学院

关于linux下fork()函数的调用

0
悬赏园豆:10 [已解决问题] 解决于 2013-05-29 12:40

以下的一段代码

View Code
#include <stdio.h>
#include <stdlib.h>
int main()
{
    pid_t pidnum;
    int x=5;
    pidnum=fork();
    if(pidnum<0){
        printf("creat error\n");
        return 0;
    }
    else if(0==pidnum){
        printf("i am the child,pid=%d\n",getpid());
        printf("x=%d\nthe add=%d\n",x,&x);
    }
    else{
        printf("i am the father,pid=%d\n",getpid());
        printf("x=%d\nthe add=%d\n",x,&x);
    }
    return 0;
}

在fork调用后,父子进程的x的地址是同一个..子进程应该复制了父进程的变量,怎么地址还是同一个呢?

走路放慢脚步的主页 走路放慢脚步 | 初学一级 | 园豆:183
提问于:2013-02-26 12:02
< >
分享
最佳答案
0

这个地址是进程中的虚地址,又不是实际内存中的物理地址,两个不同进程内部的变量有同样的地址不是很正常的嘛。

收获园豆:10
天方 | 大侠五级 |园豆:5375 | 2013-02-26 14:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册