在我描述我的问题之前,这里是我正在编写的 C++ 程序的描述:
- 我的程序的目的是在 RAM 内存上创建文件。
我读到,如果FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE
在创建文件时指定,它将直接加载到 RAM 内存中。
谈论的博客之一是这个:
这只是暂时的
拉里·奥斯特曼,2004 年 4 月 19 日
要创建一个“临时”文件,您调用 CreateFile
FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE
在dwFlagsAndAttributes属性中指定。这种位组合作为对文件系统的提示,文件数据不应该被刷新到磁盘。换句话说,无需系统接触磁盘即可创建、写入和读取这样的文件。
我已经建立了一个小程序,但它没有达到目标。相反,它会在我指定的目录中的硬盘驱动器上创建一个文件。
这是我的程序:
void main ()
{
LPCWSTR str = L"c:\\temp.txt";
HANDLE fh = CreateFile(str,GENERIC_WRITE,0,NULL,CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE,NULL);
if (fh == INVALID_HANDLE_VALUE)
{
printf ("Could not open TWO.TXT");
return;
}
DWORD dwBytesWritten;
for (long i=0; i<20000000; i++)
{
WriteFile(fh, "This is a test\r\n", 16, &dwBytesWritten, NULL);
}
return;
}
我认为CreateFile函数存在问题,但我无法修复它。请帮我。