可能重複的大小:
How to dynamically expand a Memory Mapped File增加內存映射文件
您好我有類似的數據結構的樹存儲在內存映射文件中 窗口。當我需要插入一條記錄時,我正在檢查它的空閒指針 是否接近文件末尾。但真正的問題是關於調整文件大小。
在windows文檔中,據說'CreateFileMapping'會根據它的參數調整 文件的大小。所以我決定像波紋管一樣使用它。
#define SEC_IMAGE_NO_EXECUTE 0x11000000
static void resize_file(wchar_t * file_name,int size)
{
hFile = CreateFile(file_name,GENERIC_READ|GENERIC_WRITE,0,\
NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,\
NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
MessageBox(NULL,L"resize_file CreateFile have been failed" ,szAppName,MB_OK);
exit(0);
}
// open file mapping object //
HANDLE hMap = CreateFileMapping(hFile,NULL,PAGE_EXECUTE_READWRITE|SEC_IMAGE_NO_EXECUTE,0,size,NULL);
// Close files and mapping //
CloseHandle(hMap);
CloseHandle(hFile);
}
請問這項工作。我對此有點內疚,因爲我只是打開並重映射 文件,並沒有刷新它。我是否需要衝洗它並進行其他操作?
--thanks在advance--
可能重複[如何動態擴展內存映射文件](http://stackoverflow.com/questions/6096485/how-to-dynamically-expand-a-memory-mapped-file)+ [我怎麼能擴展一個內存映射文件的長度?](http://stackoverflow.com/questions/7752579/how-can-i-extend-the-length-of-a-memory-mapped-file) –