不相关进程之间的mmap文件

时间:2014-08-06 21:47:26

标签: linux ipc shared-memory mmap

mmap()如何在不相关的进程之间工作?

如果我在一个进程中对磁盘上的文件进行mmap,那么稍后会发生一个过程,并从mmap中打开文件的好处吗?

我看到有一些方法可以在父母和子女进程之间进行分享,我指的是相互沟通但不是父母/子女的流程。

由于

2 个答案:

答案 0 :(得分:1)

两个独立的进程可以使用mmap(2)来共享对保存文件数据的内核磁盘块缓存的访问:

1)进程A打开一个文件,使文件达到所需的大小,并在文件中创建一个mmap(2)窗口。

2)进程B打开同一个文件,并在同一文件中创建一个mmap(2)窗口。

3)现在,两个进程中同时存在相同的内核块缓存数据。这两个过程都可以修改数据,并且该数据可以在其他过程中即时获得。

这是MAP_SHARED标志要提供的问题。

答案 1 :(得分:0)

mmap在虚拟地址空间中创建一个新映射。

你在谈论什么样的好处,解释更多。

process -1 mmap - a.txt
process -2 did not do mmap then it cannot access a.txt unless he opens a.txt using open/FILE and gets a file pointer.