Что означает код errno 25 (ENOTTY)?

 
Также может означать:
КонстантаТипОС
ERROR_SEEKОшибка WindowsWindows
KERN_MEMORY_RESTART_COPYКод возврата ядра macOSmacOS
ippStsInsufficientEntropyСтатус Intel IPPЛюбая
BAD_POOL_HEADERКод BSODWindows
Предыдущий Следующий
EMFILE ETXTBSY

ENOTTY

Почему название историческое

ENOTTY исторически относился к операции, требующей терминального устройства. В современных UNIX-подобных системах код обычно возвращается, когда запрос ioctl() неприменим к объекту, на который указывает файловый дескриптор. Сам дескриптор может быть действительным, но вести к обычному файлу, сокету, каналу, пространству имён или драйверу, не реализующему эту команду.

Поэтому это чаще несоответствие контракта API, а не отсутствие физического терминала. Возможность также может не поддерживаться текущим ядром, файловой системой, драйвером или библиотечной обёрткой.

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

  • Запишите константу запроса ioctl, происхождение дескриптора и тип объекта.
  • Убедитесь, что дескриптор относится именно к ожидаемому устройству или файловой системе, а не просто является открытым.
  • Проверьте документированную поддержку точной команды в используемой версии ядра, драйвера и файловой системы.
  • Предусмотрите проверку возможности или явное состояние «не поддерживается», а не считайте каждый ENOTTY временным сбоем.

Ссылки


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