ошибка при вызове функции socket () - PullRequest
0 голосов
/ 14 февраля 2011

errno устанавливается на ошибку № 40 (слишком много символических ссылок обнаружено), когда сокет возвращает -1Было бы очень полезно узнать, что решит эту проблему.

Ответы [ 2 ]

1 голос
/ 14 февраля 2011

Вы открываете сокет Unix-домена? Если это так, укажите имя, которое не включает цикл символьных ссылок, например:

ln -s a b
ln -s b a

Если вы попытаетесь использовать «a» или «b», вы получите сообщение об ошибке «слишком много символических ссылок».

0 голосов
/ 14 февраля 2011

Это выглядит довольно необычно, так как socket (3) возвращает новый дескриптор файла.Предполагая, что вы используете Linux, это не сокет, который выдает код ошибки (socket () вернет ENFILE при любой файловой ошибке при получении дескриптора).сделайте две вещи: сначала убедитесь, что errno очищен перед вызовом socket ().Затем сохраните errno в локальной переменной сразу после выхода из socket () с ошибкой.Я думаю, вы обнаружите, что errno имеет другое значение или это другая функция, которая не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...