Re[2]: Отключить кэширование диска
От: Аноним  
Дата: 01.02.06 06:07
Оценка:
Здравствуйте, ekamaloff, Вы писали:

Спасибо за быстрый ответ, но к сожаленью не помогло.

E>FILE_FLAG_NO_BUFFERING?

Проблема в том что я пользуюсь функциями fopen/fscanf...(программа переделана из DOS для Windows), а если использовать CreateFile и т.д. придется отказаться от использования парсинга с помощью fscanf, и вообще переписывать всю программу.

E>FlushFileBuffers?

На счет этой функции: я так понял, что она очищает "буфер передатчика",т.е. с ее помощью можно заставить систему записать все прокэшированные данные на диск(чтобы можно было его извлеч например).
Провел эксперимент:

//Производим запись на диск
...

HANDLE driveh;
driveh=CreateFile("\\.\a:",
GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL/*FILE_FLAG_NO_BUFFERING*/,
NULL);
FlushFileBuffers(driveh); //Сбрасываем кэш

//Считываем данные с диска
...

В результате при считывании Обращения к диску не происходит.
Может есть еще варианты?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.