Какие факторы могут привести к ошибке Win32 665 (ограничение файловой системы)?

Я поддерживаю приложение, которое собирает данные из регистратора данных и добавляет эти данные в конец двоичного файла. Природа этой системы такова, что файл может увеличиваться в размерах (> 4 гигабайт) небольшими шагами за раз. Один из пользователей моего приложения видел в своем разделе NTFS случаи, когда попытки добавления данных заканчивались неудачей. Об ошибке сообщается в результате вызова fflush (). Когда это происходит, возвращаемое значение GetLastError () - 665 (ERROR_FILE_SYSTEM_LIMITATION). MSDN дает следующее описание этой ошибки

Запрошенная операция не может быть завершена из-за ограничения файловой системы

Поиск этого кода ошибки в Google дает результаты, относящиеся к серверу SQL с ОЧЕНЬ большим файлов (десятки гигабайт), но сейчас наш файл намного меньше. Этот пользователь не смог увеличить размер файла до 10 гигабайт. Мы можем временно исправить ситуацию, когда выполняем некоторую операцию (например, копирование файла), которая вызывает некоторую перезапись в файловой системе. К сожалению, я не уверен, что в первую очередь приводит нас в такое состояние. Какие конкретные условия в файловой системе NTFS могут привести к появлению сообщения об этой конкретной ошибке при вызове fflush ()?

5
задан Doug T. 6 September 2011 в 17:35
поделиться