Помощь - Поиск - Пользователи - Календарь
Полная версия: Как считать файл именно с носителя, а не из буфера/экша
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Andrewshkovskii
Интересуют способы чтения файлов(в данном случае текстовых) напрямую, без чтения из кэша/буфера обмена. т.е что бы файлы не кэшировались.(увы, такое задание стоит). Есть ли возможность это реализовать на winapi или на чистом c/c++?И главный вопрос - как?
volvo
Кеш в твоем случае - это что? Те несколько мегабайт, что есть у винчестера (аппаратный кеш) тоже надо запретить? Системный-то запрещается довольно просто: CreateFile + FILE_FLAG_NO_BUFFERING, а потом ReadFile... А вот что делать с аппаратным - вопрос...
Andrewshkovskii
Вопрос идет о уже существующем файле.Т.е в винде я создал файл, и считываю его в программе с помошью файловых потоков c++. при первом запуске считывается как я понимаю а прямую, а при следующем уже явно с кэша.
volvo
Цитата
Вопрос идет о уже существующем файле
А ты думаешь, CreateFile только создает файлы, а открыть уже существующий - не в состоянии? Ошибаешься, однако...

hFile = CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_NO_BUFFERING, NULL);
должно открыть файл с запретом системного кэширования
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.