Site icon EfmSoft

Что означает код errno 96 (ENODATA)?

 
Также может означать:
КонстантаТипОС
EPFNOSUPPORTerrnoLinux
EDESTADDRREQerrnoSolaris
PROCESS_INITIALIZATION_FAILEDКод BSODWindows
Предыдущий Следующий
EPFNOSUPPORT EDESTADDRREQ

ENODATA

ENODATA в Darwin

В Darwin значение 96 (ENODATA) означает: в потоке STREAM Darwin нет доступного сообщения. Операция чтения или управления, совместимая со STREAMS, не обнаружила сообщения или данных в требуемом контексте потока.

Почему важна платформа

Декодируйте ENODATA по заголовкам SDK/XNU той версии macOS, где получен результат. Darwin errno не декодируйте по Linux.

Что зафиксировать

СведенияНа какой вопрос отвечают
Тип файлового дескриптора, подключённые модули, полоса сообщения, операция, флаги и состояние производителя.Связывают отсутствие сообщения в потоке STREAM Darwin с конкретным действующим объектом API, а не только с переведённым сообщением.
Darwin errno и версия SDK/XNU.Показывают, возникло ли это состояние в ABI вызывающей стороны, оболочке или поставщике.
Результат первого системного вызова или ioctl, а также процесс, поток и поколение объекта.Сохраняет errno до его перезаписи.
Контрольный объект той же сборки macOS.Даёт контрольное сравнение на той же платформе.

Сохраните errno и возвращаемое значение функции сразу после отказавшего системного вызова или ioctl, до форматирования сообщения, логирования и очистки, которые могут изменить errno.

Контрольная проверка

  1. Отправьте одно известное сообщение через контролируемую конечную точку потока. После контрольной операции повторите исходный вызов, чтобы результат оставался относящимся к отсутствию сообщения в потоке STREAM Darwin.
  2. Немедленно сохраните errno и сравните связанное возвращаемое значение. При проверке отсутствия данных STREAMS не меняйте двоичный файл, ABI заголовков и поставщика.
  3. Повторите тест с одним контролируемым объектом, сохранив идентификатор и песочницу без изменений. Зафиксируйте, достигает ли проверка отсутствия данных STREAMS той же границы системного вызова или среды выполнения, что и исходная ошибка.

Исправление

Восстановите состояние производителя или модуля либо перейдите на поддерживаемый API сокетов или IPC; явно обрабатывайте пустое состояние.

Технические ссылки


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

Exit mobile version