|
#1
|
||||
|
||||
Глюк с Blockwrite
Всем привет! Работая на днях с файлами наткнулся на такой глюк с процедурой Blockwrite. Если я начинаю записывать этой процедурой файл, у меня он почему-то записывается куда-то в оперативную память а потом только на флешку. В итоге программа показывает что файл до копировался, а на самом деле еще копируется. Этот вывод я сделал через прогу Procmon. Как мне обойти этот буфер?
|
#2
|
||||
|
||||
И CloseFile делается?
Если что, политика в диспетчере устройств. Скриншот сейчас сделать не в силах, с телефона я. Пишу программы за еду. __________________ |
#4
|
||||
|
||||
Т.е все в порядке, все данные на флешке сохранены?
Пишу программы за еду. __________________ |
#5
|
||||
|
||||
Данные все нормально сохраняются. Он только сначала показывает скорость в районе 300 Мбайт/сек потом приложение в конце висит. Пытаюсь закрыть приложение оно закрывается и в диспетчере задач висит один поток от моего приложения.
Последний раз редактировалось Klyaksa, 16.02.2017 в 21:56. |
#6
|
|||
|
|||
Цитата:
Это нормально для флешек. Там есть аппаратное/низкоуровневое кеширование. При активации безопасного отключения USB накопителя, ОС принудительно форсирует сохранение этого кеша. А пока флешка активна данные могут лежать в буфере сколь угодно долго. только это должно быть прозрачно для прикладных программ. Т.е. даже есть ФИЗИЧЕСКИ данные еше не записаны, но (другая) программа читает их, они должны считаться нормально, как будто уже записаны. |
#7
|
||||
|
||||
Цитата:
|
#8
|
|||
|
|||
Этот - нельзя.
Можно только попросить ОС отмонтировать флешку - тогда ОС сама все сделает. |