如果关闭受监控的 fd,select 会做什么?

发布于 2024-09-26 09:16:42 字数 242 浏览 2 评论 0原文

我可以测试这个来找到行为,但这不是重点。在我对另一个问题的回答中,评论者建议关闭从另一个线程监视 fd 以唤醒 select。另一位评论者在标准中找不到对此行为的引用,我也找不到。

有人可以提供有关此行为的标准的指针吗?

I can test this to find the behavior but that's not the point. In my answer to another question, a commenter recommended closing a monitored fd from another thread to wake up select. Another commenter couldn't find a reference to this behavior in the standard, and I can't find one either.

Can someone provide a pointer to the standard on this behavior?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心碎无痕… 2024-10-03 09:16:42

来自《The Open Group 基本规范第 7 期》中 select 的描述:

当对 O_NONBLOCK 清除的输入函数的调用不会阻塞时,无论该函数是否成功传输数据,描述符都应被视为已准备好读取。 (该函数可能会返回数据、文件结束指示或指示其被阻止的错误以外的错误,并且在每一种情况下,描述符都应被视为已准备好读取。)

因此,我会说此方法是便携式的。

From the description of select in "The Open Group Base Specifications Issue 7":

A descriptor shall be considered ready for reading when a call to an input function with O_NONBLOCK clear would not block, whether or not the function would transfer data successfully. (The function might return data, an end-of-file indication, or an error other than one indicating that it is blocked, and in each of these cases the descriptor shall be considered ready for reading.)

So, I would say this method is portable.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文