我正在尝试将相对较大的文件加载到内存中,并且能够通过HANDLE
访问它,就像CreateFile()
检索到的一样。
加载文件
在内存中加载时更改多个属性
HANDLE
我无法再次将文件保存到硬盘中。
在MSDN上有一个例子,我可以在其中创建一个共享内存:Creating Named Shared Memory遗憾的是我不太确定这与我的赋值有多相关,因为函数检索的句柄是{{1句柄,缓冲区本身是FileMapping
指针。
答案 0 :(得分:5)
嗯,出于所有实际目的,你不能阻止RAM被交换到HDD,所以我会给你一个同样好的解决方案。
使用HANDLE
创建新文件CreateFile(... , FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE)
。这告诉操作系统内容不需要离开文件缓存(RAM),除非RAM很少。我们已经确定,当RAM耗尽时,任何东西都可以换成磁盘。
接下来,将源文件中的内容复制到新的临时文件中,然后根据需要进行修改。