c – 使用fork时如何映射内存?
发布时间:2020-12-13 18:55:09 所属栏目:Linux 来源:网络整理
导读:我是“fork()”的新手,我随处读到,当调用fork()时,启动当前(调用)进程的精确副本.现在,当我运行以下代码时,应该有两个不同的进程,有两个不同的分配给其变量和函数的内存位置. #include Why The output looks like:: child address::804a01c parent address::
我是“fork()”的新手,我随处读到,当调用fork()时,启动当前(调用)进程的精确副本.现在,当我运行以下代码时,应该有两个不同的进程,有两个不同的分配给其变量和函数的内存位置.
Why The output looks like:: child address::804a01c parent address::804a01c 为什么父母和孩子的地址都是一样的? 最佳答案
不; Linux实现了virtual memory,这意味着每个进程都有自己的完整地址空间.因此,在fork之后,两个进程都会看到内存对象副本的相同地址. (顺便说一下:VM还会导致代码在物理内存中的进程之间共享,并且所有数据都只是copied-on-write.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- Linux info命令:info格式的命令帮助指令
- linux – 使用intel igb(已解决)在3/5 raid6 iSC
- linux ubuntu centos ssh 登录 root 密码错误 Pe
- linux – 增长RAID 5会破坏RAID上的数据吗?
- linux – 服务器之间用户密码列表的简单单向同步
- 我可以用完Linux上的虚拟内存吗?
- embedded-linux – 无法导出gpio引脚
- linux – SSD磁盘和10 Gbe网络的iSCSI性能不佳
- linux – apachectl和httpd.worker有什么区别?
- Linux 2.6.35上的用户模式中ARM v7处理器缓存的清
热点阅读