gpt4 book ai didi

sockets - Select 系统调用的虚假就绪通知

转载 作者:行者123 更新时间:2023-12-04 04:39:40 26 4
gpt4 key购买 nike

http://linux.die.net/man/2/select , 在 BUGS 部分提到 select 系统调用有时可能会虚假地将 FD 设置为就绪,随后的 read 调用将返回 0。文本描述了一个这样的例子(错误的校验和),但我假设也会有其他原因(否则他们会解决这个问题)。

任何想法可能导致 Select 虚假地返回 FD 的其他原因。

这是否也适用于其他操作系统。我目前正在询问 Linux。

上述链接的相关部分:

Under Linux, select() may report a socket file descriptor as "ready for reading", while nevertheless a subsequent read blocks. This could for example happen when data has arrived but upon examination has wrong checksum and is discarded. There may be other circumstances in which a file descriptor is spuriously reported as ready. Thus it may be safer to use O_NONBLOCK on sockets that should not block.

最佳答案

这不完全是一个答案,但是查看epoll,这些问题似乎都为它解决了。

如果我可以信任 this message在 netdev 中,他们至少也尝试在 poll() 和 select() 中修复它(破坏其他东西)。

因此,这个错误在可预见的 future 似乎并不相关。

关于sockets - Select 系统调用的虚假就绪通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/858282/

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