我查看了boost的mapped_file和CreateFileMapping / MapViewOfFile,但它们看起来过于复杂。
我可以使用更简单的方法在现有文件中覆盖几个字节吗?表现不是一个很重要的考虑因素。
答案 0 :(得分:1)
答案 1 :(得分:0)
这样的事情(未经测试,您还应该检查HRESULTS错误代码):
CAtlFile f;
f.Create( L"MyFile.txt", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, OPEN_ALWAYS );
CAtlFileMapping<BYTE> map;
map.MapFile( f , 0, 0, PAGE_READWRITE, FILE_MAP_ALL_ACCESS );
printf( "%d bytes\n", (int)map.GetMappingSize() );
// Overwrite the 3-rd byte with 21
map[2] = 21;