我可以使用boost :: interprocess包对整个文件进行内存映射:
boost::interprocess::file_mapping* fm = new file_mapping(FilePath, boost::interprocess::read_only);
boost::interprocess::mapped_region* mr = new mapped_region(*fm, boost::interprocess::read_only);
char* bytes = static_cast<char*>(mr->get_address());
然而,这会映射整个文件。我有一个30GB的文件 - 它不适合主内存。有什么方法可以使用相同的升压库从位置0映射到x然后我可以再次从位置x + 1映射到2 * x等?