Что означает код errno 6 (ENXIO)?

 
Также может означать:
КонстантаТипОС
ERROR_INVALID_HANDLEОшибка WindowsWindows
KERN_RESOURCE_SHORTAGEКод возврата ядра macOSmacOS
ippStsDivByZeroСтатус Intel IPPЛюбая
INVALID_PROCESS_DETACH_ATTEMPTКод BSODWindows
Предыдущий Следующий
EIO E2BIG

ENXIO

Два распространённых значения

ENXIO часто связан со специальными, а не обычными файлами. При открытии символьного или блочного устройства он может означать, что узел устройства существует, но соответствующее устройство отсутствует или недоступно. Путь корректен, однако за ним нет пригодной цели.

У кода есть и отдельный случай FIFO. Неблокирующее открытие FIFO для записи может завершиться ошибкой, если ни один процесс в этот момент не открыл канал для чтения. Это состояние доступности второй стороны, а не повреждение файловой системы. Другие API могут задавать дополнительные значения, поэтому место вызова остаётся обязательным контекстом.

Как расследовать

  • Классифицируйте путь: обычный файл, узел устройства, FIFO, сокет или иной специальный объект.
  • Для устройства проверьте наличие нужного физического или виртуального устройства, а также работу соответствующего драйвера или службы.
  • Для FIFO проверьте порядок запуска читателя и писателя и осознанно выберите блокирующее открытие, неблокирующие повторы либо другой механизм IPC.
  • Не пересоздавайте узел устройства только потому, что имя существует: подтвердите правильность major/minor и соответствие ожидаемому устройству.

Ссылки


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