如何确认多个进程共享映射区域,使用带有MAP_SHARED标志的mmap创建

时间:2014-08-15 14:00:30

标签: c linux memory

我创建了两个独立的进程process1和process2,它将映射(使用带有MAP_SHARED标志的mmap)映射到同一个文件(或)对象,在这种情况下,映射区域应该是b / w进程共享。当我打印两个进程的mmap系统调用的返回值时,打印的地址不同,我相信打印的地址是虚拟地址,因此它的不同但物理地址可能相同。如果我错了,请纠正我。

在读取堆栈溢出中的线程后,我发现我们无法从用户空间转换物理地址到虚拟地址。那么有没有其他方法可以确认映射区域是共享黑白进程?。

1 个答案:

答案 0 :(得分:0)

在那里写一些神奇的数字。如果第二个进程看到了神奇的数字,那么,你正在查看相同的内存。