|
1
6
Boost不处理文件,它依赖于操作系统来完成任务。对内存映射文件的支持是按需分页虚拟内存操作系统的通用功能。像Windows、Linux、OSX。内存通常由分页文件支持,由您选择的特定文件支持只是一小步。Boost只提供了一个独立于平台的适配器,仅此而已。
您需要查看相关的操作系统文档页面,以了解当您做一些不寻常的事情时,可能会发生什么,以及预期会如何工作。对于Linux和OSX,您需要查看
是的,您几乎总是需要仲裁对内存映射文件的访问,因此例如,一个进程只会在另一个进程完成写入时尝试读取数据 不 file_lock(OS已经锁定了文件),它是一个命名的互斥体。比如说,使用boost named_mutex class . 请记住,这是一个 非常 低级互操作机制,并且没有任何便利。当您添加所有所需的同步时,您已经完成了OS使用命名管道或本地环回套接字所做的一半。如果您发现必须将数据复制到映射视图中,这并不罕见,因为它不容易调整大小,那么您就失去了所有的好处。 |