mmap() 用于创建由文件系统支持的内存区域。但是,我想要相反的情况:一个由内存支持的文件。那可能吗?我有一个遗留静态库(意味着无法更改它)只能打开一个本地文件。我无法将其更改为使用重定向的 fd 或标准输入(因为管道不支持搜索)我希望文件内容从 Windows 共享 (CIFS/SMB) 流式传输。是否可以在本地文件系统上创建一个具有虚假大小的虚拟文件,当遗留静态库访问文件的任何部分(查找或读取,不写入)时,我们通过从 CIFS/SMB 获取并返回来处理它遗留库(就像处理页面错误一样)?那么遗留库将不会注意到任何差异......
由于权限问题,无法安装 CIFS/SMB 共享。 假设环境是 POSIX,但是,也欢迎提供特定于操作系统的建议。
最佳答案
可能您正在寻找 shm_open
。 shm_overview(7)
手册页是开始搜索的好地方。
关于c - 内存支持的虚拟文件(反向 MMAP)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11279477/