我在使用 boost 的 mapped_file iostreams 库时遇到了问题。
提升文档:mapped_file
在阅读了我可以阅读的所有文档和示例之后,我仍然无法让下面的代码工作。我假设当您将 new_file_size 和路径传递给 mapped_file_params 类时,当我使用参数中的 mapped_file_params 对象调用 mapped_file 的构造函数时,它将在所需位置打开(并创建)文件。但它唯一要做的就是在项目工作目录中创建一个名称怪异的文件,例如“%F8/134”,而不是我告诉它的地方。也许我错了,应该在将文件指定给 mapped_file 之前创建文件?阅读文档后,我假设它在您填写 new_file_size 参数时创建了一个新文件。并指定文件名。
以前有人经历过吗?关于如何解决这个问题的任何建议?
这是代码:
boost::iostreams::mapped_file_params param(filename); // filename is a std::string with the correct path
param.flags = boost::iostreams::mapped_file::mapmode::readwrite;
param.new_file_size = sizeNeeded; // sizeNeeded is the size of the data
param.length = sizeNeeded;
boost::iostreams::mapped_file fileMap(param); // at this point the file is created
…
谢谢你的时间,
亚历山大