Boost 内存映射文件:读写访问

问题描述 投票:0回答:2

我正在初始化 boostmapped_file_params,如下所示。

mapped_file_params param;
param.path = _fileName.c_str();
param.flags = mapped_file::readwrite;
int nGranularity = mapped_file::alignment();
//! must be in multiples of Granularity.
param.offset =  5*nGranularity;

当我打开具有文件大小的文件时,我收到一个 std::Exception ,显示“最多可以指定 'mode 和 'flags 之一”。我没有根据 boost 的文档填充该模式,它说该模式已被弃用。建议进一步的新代码应该使用标志。

我的 boost 文件类型定义为

boost::iostreams::mapped_file _bioFile;

我尝试使用

打开该文件
_bioFile.open(param, filesize);

boost IO 文档:http://www.boost.org/doc/libs/1_57_0/libs/iostreams/doc/classes/mapped_file.html

我是不是漏掉了什么?

c++ boost memory-mapped-files
2个回答
0
投票

对于那些想要答案的人,我能够用这段代码解决这个问题。

_bioFile.open(_fileName.c_str(), std::ios_base::in | std::ios_base::out, filesize);

0
投票

我相信应该是这样

file_.open(file_path_, boost::iostreams::mapped_file::readwrite, 文件大小)

© www.soinside.com 2019 - 2024. All rights reserved.