gpt4 book ai didi

c++ - 增加内存映射文件的大小

转载 作者:可可西里 更新时间:2023-11-01 13:20:05 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
How to dynamically expand a Memory Mapped File

您好,我在 Windows 的内存映射文件中存储了一个树状数据结构,当我需要插入一条记录时,我正在检查它是否是空闲指针更接近文件末尾。但真正的问题在于调整文件大小。

在 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);
}

这行得通吗?我对此有点内疚,因为我只是打开并重新映射文​​件而没有刷新它。我是否需要冲洗它并进行任何其他操作?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com