gpt4 book ai didi

socket() 能否因 EINPROGRESS 而失败

转载 作者:太空宇宙 更新时间:2023-11-04 12:34:17 25 4
gpt4 key购买 nike

socket() 函数是否可能在 Linux 中因 EINPROGRESS 而失败?请注意,我特别询问的是 socket(),而不是 connect() 或其他。

POSIX没有将 EINPROGRESS 列为可能的错误代码。然而,Linux 中 socket() 的联机帮助页说:

Other errors may be generated by the underlying protocol modules.

在任何情况下此调用实际上会因 EINPROGRESS 而失败吗?

最佳答案

EINPROGRESS 表示操作正在进行中。它会由于外部原因而阻塞:WAITING远程操作或本地设备。

socket() 只是在系统内存中创建一个条目:没有理由等待任何远程操作或任何设备。

但如果它能够返回 EINPROGRESS,您就没有什么可等待的了。

对于文件句柄和套接字句柄,您可以使用 select() 来等待系统准备就绪。但是,如果 socket() 本身不返回任何内容,您就没有什么可等待的。

我看不出 socket() 返回 EIPROGRESS 的原因,但无论如何这都是个坏主意。

关于socket() 能否因 EINPROGRESS 而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42414081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com