| Предыдущий | Следующий |
| EIO | E2BIG |
ENXIO
Два распространённых значения
ENXIO часто связан со специальными, а не обычными файлами. При открытии символьного или блочного устройства он может означать, что узел устройства существует, но соответствующее устройство отсутствует или недоступно. Путь корректен, однако за ним нет пригодной цели.
У кода есть и отдельный случай FIFO. Неблокирующее открытие FIFO для записи может завершиться ошибкой, если ни один процесс в этот момент не открыл канал для чтения. Это состояние доступности второй стороны, а не повреждение файловой системы. Другие API могут задавать дополнительные значения, поэтому место вызова остаётся обязательным контекстом.
Как расследовать
- Классифицируйте путь: обычный файл, узел устройства, FIFO, сокет или иной специальный объект.
- Для устройства проверьте наличие нужного физического или виртуального устройства, а также работу соответствующего драйвера или службы.
- Для FIFO проверьте порядок запуска читателя и писателя и осознанно выберите блокирующее открытие, неблокирующие повторы либо другой механизм IPC.
- Не пересоздавайте узел устройства только потому, что имя существует: подтвердите правильность major/minor и соответствие ожидаемому устройству.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.