| Anterior | Siguiente |
| ENOSYS | EIDRM |
EMSGSIZE
Qué significa EMSGSIZE
EMSGSIZE significa que el mensaje no cabe en una operación que conserva límites de mensaje. En Linux, si el protocolo subyacente no puede transmitirlo de forma atómica, el envío falla y ese mensaje no se acepta. Es típico de sockets de datagramas o orientados a registros, no de un stream TCP normal.
El límite útil no depende solo del payload: familia, cabeceras de protocolo, datos auxiliares y MTU del camino pueden influir. Si la aplicación maneja registros grandes, debe definir fragmentación/reensamblado a nivel de aplicación o elegir un transporte de stream cuando esa semántica sea la adecuada.
Qué comprobar
- Registra tipo de socket, familia, número de bytes y datos de control incluidos en
sendmsg(). - Para UDP y protocolos similares, prueba el tamaño efectivo en el camino real y no solo en loopback.
- No confíes en que todas las redes fragmentarán automáticamente datagramas grandes de forma utilizable.
- Distingue este fallo del estado de aplicación: el kernel rechazó este envío, pero tu protocolo puede tener mensajes anteriores todavía pendientes.
Referencias técnicas
¿Buscas un código diferente? Buscar otro código de estado o error.