Что означает код errno 42 (ENOMSG)?

 
Также может означать:
КонстантаТипОС
KERN_SEMAPHORE_DESTROYEDКод возврата ядра macOSmacOS
ippStsI18nGetMessageFailСтатус Intel IPPЛюбая
ENOPROTOOPTerrnomacOS
EUNATCHerrnoSolaris
EILSEQerrnoWindows
INCONSISTENT_IRPКод BSODWindows
Предыдущий Следующий
ENOTEMPTY ENOPROTOOPT

ENOMSG

Что означает ENOMSG в Linux

ENOMSG означает «Сообщение требуемого типа отсутствует». Для условия «Сообщение требуемого типа отсутствует» код ENOMSG нужно связывать с первым возвратившим его вызовом и контекстом: сообщение, очередь, STREAMS/IPC-объект или служебный интерфейс.

После отказа, соответствующего «Сообщение требуемого типа отсутствует», сохраните errno немедленно: любой последующий системный или библиотечный вызов может заменить значение. Для ENOMSG исходная английская страница также выделяет msgrcv, MSG_COPY и IPC_NOWAIT; эти данные полезно записать вместе с return value, потоком и временем события.

Диагностика

  • При ошибке «Сообщение требуемого типа отсутствует» (Linux, ENOMSG) запишите тип объекта, команду, размер сообщения, идентификаторы и состояние очереди или потока.
  • При ошибке «Сообщение требуемого типа отсутствует» (Linux, ENOMSG) проверьте структуру и длину относительно версии интерфейса и фактической архитектуры процесса.
  • При ошибке «Сообщение требуемого типа отсутствует» (Linux, ENOMSG) установите, существует ли owner/peer и не был ли объект удалён между поиском и операцией.
  • При ошибке «Сообщение требуемого типа отсутствует» (Linux, ENOMSG) не сводите специализированный статус к общей ошибке ввода-вывода до проверки контракта IPC.

На платформе Linux исправление ENOMSG считается подтверждённым, когда исходная операция даёт ожидаемый результат, а отдельный отрицательный тест по-прежнему воспроизводит именно условие «Сообщение требуемого типа отсутствует» без утечки ресурсов и потери первичной диагностики.

Ссылки для ENOMSG


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