私の問題を説明する前に、私が書いている C++ プログラムについて説明します。
- 私のプログラムの目的は、RAM メモリ上にファイルを作成することです。
ファイルの作成時に指定するFILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE
と、RAMメモリに直接ロードされることを読みました。
話題になっているブログの 1 つに、次のようなものがあります。
あくまで一時的なものです
ラリー・オスターマン、2004 年 4 月 19 日
「一時」ファイルを作成するには、 dwFlagsAndAttributes属性を指定
FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE
してCreateFile を呼び出します。このビットの組み合わせは、ファイル データをディスクにフラッシュしてはならないというファイル システムへのヒントとして機能します。つまり、このようなファイルは、システムがディスクに触れることなく、作成、書き込み、および読み取りを行うことができます。
ミニプログラムを作成しましたが、目標を達成できません。代わりに、ハードドライブの指定したディレクトリにファイルを作成します。
これが私のプログラムです:
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関数に問題があると思いますが、修正できません。私を助けてください。