accept()超时或错误?

时间:2014-08-08 12:37:52

标签: c linux sockets

是否可以确定accept()是否因为超时或者是否有其他错误而返回-1?

接受超时时,

errno设置为11(资源暂时不可用)。这是唯一可以产生的错误吗?

1 个答案:

答案 0 :(得分:1)

作为man page of accept()。表示:

  

成功时,这些系统调用返回一个非负整数,即a   接受套接字的描述符。出错时,返回-1,并且   errno设置得恰当。

它也有错误编号列表。

  

此外,可能会返回新套接字和协议定义的网络错误。各种Linux内核可以返回其他错误,例如[..] ETIMEDOUT。


是否可以确定accept()是否因为超时或其他错误而返回-1?

将返回代码检查为-1后,您可以检查错误编号,并根据该错误编号决定,因为您的accept()失败了。

接受超时时,

errno设置为11(资源暂时不可用)。这是唯一可以产生的错误吗?

不,这不是唯一的错误。您可以在手册页上看到所有错误。