¿Qué significa el código errno 42 (ENOMSG) en Linux?

 
También puede significar:
ConstanteTipoSO
KERN_SEMAPHORE_DESTROYEDRetorno del kernel de macOSmacOS
ippStsI18nGetMessageFailEstado de Intel IPPCualquiera
ENOPROTOOPTerrnomacOS
EUNATCHerrnoSolaris
EILSEQerrnoWindows
INCONSISTENT_IRPCódigo BSODWindows
Anterior Siguiente
ENOTEMPTY ENOPROTOOPT

ENOMSG

Qué significa ENOMSG

ENOMSG suele aparecer en msgrcv() cuando se pide no esperar y no existe ningún mensaje del tipo/posición solicitados. La cola puede existir, contener otros tipos y funcionar correctamente; el resultado significa «nada coincide ahora» y no «cola rota».

La selección importa porque System V permite buscar el primer mensaje, un tipo positivo concreto o reglas especiales con tipos negativos. Productor y consumidor pueden estar sanos y aun así usar criterios incompatibles.

Qué comprobar

  • Registra ID de cola, tipo solicitado, flags y profundidad de la cola.
  • Usa IPC_NOWAIT solo cuando «no hay mensaje» sea un resultado esperado del protocolo.
  • No concluyas que el productor murió hasta revisar selección de tipo y competencia entre consumidores.
  • Prefiere timeout, notificación o acknowledgements cuando polling frecuente solo añadiría carga.

Referencias técnicas


¿Buscas un código diferente? Buscar otro código de estado o error.