当套接字返回-1时,errno设置为错误号40(遇到太多符号链接)。 知道什么可以解决这个问题会非常有帮助。
答案 0 :(得分:1)
您是否打开了Unix域套接字?如果是这样,请指定一个不涉及符号链接循环的名称,例如:
ln -s a b
ln -s b a
如果您尝试使用“a”或“b”,则会出现“太多符号链接”错误。
答案 1 :(得分:0)
这似乎很不寻常,因为socket(3)返回一个新的文件描述符。假设您使用的是Linux,那么它不是套接字,它会为您提供错误代码(在获取描述符时,socket()将在任何基于文件的错误上返回ENFILE。)
要跟踪此情况,我会做两件事:首先确保在调用socket()之前清除errno。接下来在退出socket()时立即在一个局部变量中存储错误,并显示错误。我想你会发现errno设置为不同的值,或者它是一个失败的不同函数。