| Предыдущий | Следующий |
| ENOLINK | EADDRINUSE |
EMSGSIZE
EMSGSIZE — значение errno Solaris 97. Solaris возвращает этот статус, когда сообщение, отправляемое через транспортного поставщика, больше внутреннего буфера сообщения или другого сетевого ограничения. Ошибка относится к размеру конкретного сообщения относительно ограничений транспорта.
Измерьте сообщение, завершившееся ошибкой
Для сокетов, ориентированных на сообщения, запишите длину полезных данных, переданную в send(), sendto()или sendmsg(), тип сокета, протокол и назначение. Датаграммные транспорты сохраняют границы сообщений, поэтому приложение не может считать, что ядро разделит любую чрезмерно большую датаграмму на несколько сообщений приложения. Ограничения протокола и пути также могут различаться для разных назначений.
Не диагностируйте EMSGSIZE как общую нехватку памяти. ENOBUFS является более близким состоянием Solaris, когда системе не хватает буферного пространства или очередь заполнена. Для EMSGSIZEсначала уменьшите или сегментируйте сообщение приложения согласно протоколу либо определите фактический предел транспорта. Повтор идентичного слишком большого сообщения не изменит его размер.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.