调用socket()函数时出错

时间:2011-02-14 07:20:04

标签: c

当套接字返回-1时,errno设置为错误号40(遇到太多符号链接)。 知道什么可以解决这个问题会非常有帮助。

2 个答案:

答案 0 :(得分:1)

您是否打开了Unix域套接字?如果是这样,请指定一个不涉及符号链接循环的名称,例如:

ln -s a b
ln -s b a

如果您尝试使用“a”或“b”,则会出现“太多符号链接”错误。

答案 1 :(得分:0)

这似乎很不寻常,因为socket(3)返回一个新的文件描述符。假设您使用的是Linux,那么它不是套接字,它会为您提供错误代码(在获取描述符时,socket()将在任何基于文件的错误上返回ENFILE。)

要跟踪此情况,我会做两件事:首先确保在调用socket()之前清除errno。接下来在退出socket()时立即在一个局部变量中存储错误,并显示错误。我想你会发现errno设置为不同的值,或者它是一个失败的不同函数。