首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有一个套接字和一个事件epoll_wait() >1可以吗?- EPOLLIN?

只有一个套接字和一个事件epoll_wait() >1可以吗?- EPOLLIN?
EN

Stack Overflow用户
提问于 2013-08-10 14:25:05
回答 2查看 534关注 0票数 1

假设我是epoll_create1(),并且只对一个套接字的EPOLLET感兴趣。

我是否可能得到该套接字的epoll_wait() >1(假设超时值=-1),并且事件是EPOLLIN?

或者epoll_wait()会返回1,即使有多个数据包(假设在几秒钟内传播,我在epoll_wait循环中故意暂停程序)?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-10 14:28:46

epoll_wait返回事件数,根据文档,这等于“准备好进行I/O的文件描述符的数量”。因此,您无法获得比已注册的文件描述符数量更多的事件。

票数 2
EN

Stack Overflow用户

发布于 2013-08-10 14:31:05

根据epoll_wait的这些文档,它应该返回“就绪”的fd的数量。如果您只传入一个fd,那么您应该不会得到超过1个--这肯定是epoll_wait实现中的一个bug,而且它已经存在了一段时间,所以我希望它已经得到了很好的测试(除非您正在开发一个全新的体系结构或一个C库的beta版本或其他类似的版本)。

同时,timeout = 0,而不是-1。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18162823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档