我希望任何使用boost托管共享内存的专家都可以帮助我。我正在尝试将内存写入文件。我无法用增强示例弄明白。 ¿任何人都可以提供一些例子吗?
感谢。
答案 0 :(得分:2)
如果你真的需要这个,我一眼就能看到大约两种方法:
复制
使用Managed External Buffer。托管缓冲区基本上是一个透明内存缓冲区之上的段管理器。您可以决定它是存在于本地进程地址空间,共享内存还是内存映射文件中。
这是支持的方法,在两者中使用相同的段管理器+段数据布局。
如果您真的绝望了,可以尝试将完整的共享内存对象按位复制到相同大小的文件中,然后将其打开。这个可能工作IFF managed_mapped_file
实现具有完全相同或兼容的segement管理结构,标题和布局。这虽然是一个很长的电话,即使看起来有效,但它最多没有文档记录,因此可能会调用未定义的行为。
答案 1 :(得分:1)
也许您正在寻找mapped_file
:http://www.boost.org/doc/libs/1_63_0/libs/iostreams/doc/classes/mapped_file.html
它是文件的内存映射API,您可以在多个进程中打开同一个文件。