我正在使用以下代码打开大小约为 400 到 800MB 的文件:
#include <boost\interprocess\file_mapping.hpp>
#include <boost\interprocess\mapped_region.hpp>
#include <iostream>
#include <vector>
#include <string>
using namespace boost::interprocess;
using namespace std;
int main(){
file_mapping fm("C:\\test\\1.txt",read_only);
mapped_region region(fm,read_only);
const char* const data = static_cast<const char*>(region.get_address());
const size_t max_size = region.get_size();
cout << max_size;
int b;
cin >> b;
}
如果我将上面的代码指向一个小文件,我也不会例外。但是,当查看数百 MB 文件(在外部 USB 上)时,我得到一个例外:
ReadingFiles.exe 中 0x7521C41F 处未处理的异常:Microsoft C++ 异常:内存位置 0x0040FBD4 处的 boost::interprocess::interprocess_exception。
我有 2.4GB 的可用 RAM - 所以不应该是我的内存用完了吗?