【发布时间】:2015-06-09 08:15:33
【问题描述】:
调用fork时,栈和堆都从父进程复制到子进程。在使用 fork 系统调用之前,我 malloc() 了一些内存;假设它的地址是A。使用fork系统调用后,我在父进程和子进程中都打印了这个内存的地址。我看到两者都在打印相同的地址: A. 子进程和父进程能够独立地向该地址写入任何值,并且一个进程的修改不会反映在另一个进程中。据我所知,地址在一台机器中是全球唯一的。
我的问题是:为什么同一个地址位置A会同时存储不同的值,即使堆被复制了?
【问题讨论】:
标签: fork