mmap() 如何在不相关的进程之间工作?
如果我在一个进程中对磁盘上的文件进行 mmap,那么稍后会出现一个进程并打开该文件并从 mmap 中受益吗?
我看到有一些方法可以在父进程和子进程之间共享,我指的是相互通信但不是父/子进程的进程。
谢谢
最佳答案
两个独立的进程可以使用 mmap(2) 共享对保存文件数据的内核磁盘 block 缓存的访问:
1) 进程 A 打开一个文件,使文件达到所需的大小并在文件中创建一个 mmap(2) 窗口。
2) 进程 B 打开同一个文件并在同一个文件中创建一个 mmap(2) 窗口。
3) 现在,相同的内核 block 缓存数据同时存在于两个进程中。任何一个进程都可以修改数据,并且该数据在另一个进程中即时可用。
这就是 MAP_SHARED 标志旨在提供的问题。
关于linux - 不相关进程之间的 mmap 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25170795/