Что означает код ошибки Windows 111 (ERROR_BUFFER_OVERFLOW)?

 
Также может означать:
КонстантаТипОС
ECONNREFUSEDerrnoLinux
EIDRMerrnoWindows
SESSION3_INITIALIZATION_FAILEDКод BSODWindows
VSL_INITIALIZATION_FAILEDКод BSODWindows
Предыдущий Следующий
ERROR_OPEN_FAILED ERROR_DISK_FULL

ERROR_BUFFER_OVERFLOW

ERROR_BUFFER_OVERFLOW (111, 0x0000006F) — системная ошибка Win32 с определённым сообщением «Слишком длинное имя файла». Несмотря на имя константы, этот код обычно относится к ограничению длины пути, а не к общему переполнению буфера памяти.

Устаревшие ограничения путей

Многие файловые API Windows исторически используют MAX_PATH, обычно 260 символов с учётом завершающего нуля. Поэтому глубоко вложенный каталог, длинный путь рабочей копии или несколько длинных компонентов могут привести к сбою, даже если каждое имя файла по отдельности выглядит допустимым.

Пути расширенной длины

Unicode API файлов могут поддерживать гораздо более длинные абсолютные пути при использовании префикса расширенной длины, например \\?\ . Эта форма меняет правила разбора пути: прямые косые черты и относительные компоненты, такие как . и .. , обрабатываются иначе. Относительные пути по-прежнему ограничены традиционным пределом.

Практическое исправление

  • До сбойного вызова запишите полный путь и количество его символов.
  • Последовательно используйте Unicode API.
  • Сократите необязательную глубину каталогов, если часть пути контролируется приложением.
  • Убедитесь, что конкретная версия Windows, конфигурация приложения и используемый API поддерживают выбранный способ работы с длинными путями.

См. документацию Microsoft о ограничения максимальной длины пути и CreateFile.


Нужно найти другой код? Найти другой код состояния или ошибки.