Прежде чем я опишу свою проблему, вот описание программы, которую я пишу:
Это приложение на C ++.
Цель моей программы - создать файл в оперативной памяти.
Я прочитал, что если указать FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE при создании файла он будет загружен непосредственно в оперативную память.
Один из обсуждаемых блогов: http://blogs.msdn.com/larryosterman/archive/2004/04/19/116084.aspx
Я построил мини-программу, но она не достигает цели. Вместо этого он создает файл на жестком диске в указанном мной каталоге.
Вот моя программа:
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 («Не удалось открыть TWO.TXT»);
вернуть;
} * * Тысяча двадцать-один
DWORD dwBytesWritten;
для (long i = 0; i <20000000; i ++)
{
WriteFile (fh, «Это тест \ r \ n», 16, & dwBytesWritten, NULL);
} </p>
возвращение;
}
Я думаю, что есть проблема в функции CreateFile, но я не могу ее исправить. Пожалуйста, помогите мне.