mmap()如何在不相关的进程之间工作?
如果我在一个进程中对磁盘上的文件进行mmap,那么稍后会发生一个过程,并从mmap中打开文件的好处吗?
我看到有一些方法可以在父母和子女进程之间进行分享,我指的是相互沟通但不是父母/子女的流程。
由于
答案 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.