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

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

ENODATA

ENODATA в Darwin

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

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

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

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

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

Исправление

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

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


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