man recv
не документирует EFBIG
, что означает, что если вы его видите, вы столкнулись с ошибкой в ОС. Обратитесь в службу поддержки Sun Oracle Solaris.
Если вы находитесь в OpenSolaris, немой поиск показывает, что сами сокеты не возвращают EFBIG
(нет совпадений при sys/common/inet/
; сравните, например, с поиском ENOBUFS
). Для меня это говорит о том, что вы могли бы:
- имеет параметр, превышающий некоторый предел безопасности. например классические
-1u
байтов, которые будут перехвачены еще до достижения API сокетов. (вряд ли для этого используются другие коды ошибок.)
- использовать send / recv с неверным сокетом / дескриптором файла.