【发布时间】:2017-02-23 21:29:34
【问题描述】:
socket() 函数是否有可能在 Linux 中以 EINPROGRESS 失败?请注意,我专门询问的是socket(),而不是connect() 或其他人。
POSIX 没有将EINPROGRESS 列为可能的错误代码。但是 Linux 中 socket() 的手册页说:
底层协议模块可能会产生其他错误。
在任何情况下,此调用实际上可能会因EINPROGRESS 而失败?
【问题讨论】:
-
我不知道怎么做。没有什么可以进行的。不涉及 I/O:只是创建一个套接字 FD。为什么要问?
-
我认为手册页在这里是明确的:可能有协议,实际上 do 在调用
socket()时返回EINPROGRESS。但是没有一个常用的协议这样做。那时不可能返回引用的文件描述符,所以它必须是一个硬错误,这与EINPROGRESS的含义有些冲突