如何像 shmget 一样在内存中重新映射 mmap(2) 的文件

如何像 shmget 一样在内存中重新映射 mmap(2) 的文件

我有一个巨大的文件,即 1TiB,由 'filehandler' 拥有,允许rwx------。我mmap(2)将其放入 64 位地址空间,一切顺利。此文件由以用户“filehandler”身份运行的进程处理。

其他进程以文件处理程序以外的用户身份运行,并向此处理程序进程请求服务。它们通过 unix 套接字登录到处理程序。它们通过 IPC 规则进行通信,一切正常。

出于安全原因,整个文件不能与请求者共享。文件中只有部分内容允许请求者进程访问。

如果共享内存,即仅与请求进程共享文件允许的部分,则会获得最佳性能。

例如,shm 提供了其他进程访问该段的密钥,对于请求者来说,这是一个实用的定位。

有没有办法mmap(2)可以像 shm 技术那样只将 -ed 空间的允许部分共享给任何已识别的进程?

相关内容