开发者社区> 问答> 正文

关于linux写时复制的一个疑问,C程序

linux写时复制的机制就是,当fork出一个子进程的时候,子进程并不立刻复制数据段,而是当子进程要修改数据时才分配相应内存给变量。按照这样的原理,我用C写了一个程序,声明一个全局变量并初始化,然后在进程里fork出一个进程,这时在父子进程输出全局变量的地址都是一样的,我在子进程修改变量值后,同样在父子进程输出变量地址,却地址还是一样的!这到底是为什么?写的时候不是要分配内存的吗?怎么地址值还是一样!路过的朋友帮我解解惑ˊ_>ˋ

展开
收起
杨冬芳 2016-07-14 09:47:30 1526 0
1 条回答
写回答
取消 提交回答
  • IT从业

    你这个都是虚拟地址,它这个修改的是地址的内容。地址没有变化

    2019-07-17 19:56:03
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载