我想使用boost::interprocess::managed_mapped_file
处理内存映射文件。但是在文档中找不到有关内存分配的详细信息。
即使我知道如果在创建allocate()
对象期间指定的所有内存(实际上是文件的大小)已经分配或者没有分配,boost::interprocess::bad_alloc
会失败,并出现boost::interprocess::managed_mapped_file
错误足够大的可用内存序列,或者只是增加了文件的大小。
如果失败了,怎么能让它增加文件的大小(比如增加两倍)?
答案 0 :(得分:1)
您可以扩展内存映射文件,但不能在其他进程映射时生成内存映射文件。所有客户端通常都必须重新映射文件。
略有关联:boost::interprocess::managed_shared_memory: Grow(): Memory Reused?