提升进程间分配器 - 管理文件大小

时间:2013-04-03 16:56:20

标签: c++ boost-interprocess

首先,我将概述带有来源的域名。

namespace bip=boost::interprocess;

typedef bip::allocator<int, bip::managed_mapped_file::segment_manager> allocator;
typedef bip::vector<int, allocator> vector;

bip::managed_mapped_file m_file(open_or_create, "./file", constant_value);    
bip::allocator alloc(m_file.get_segment_manager());
bip::vector *vec = m_file.find_or_construct<vector>("vector")(alloc);

我不关心底层文件的最终大小,但我无法预见这个值。是否有任何增强机制,它将处理调整基础文件的大小?或者我必须抓住bip :: bad_alloc并自己关心这个?

1 个答案:

答案 0 :(得分:6)

阅读这些文档的this section

你有静态成员函数grow()可能是你需要的:

bip::managed_mapped_file::grow("./file", extra_bytes);

但是你必须确定没有人使用该文件,这就是为什么他们称之为离线增长。根据问题,这可能是不可能的。