epoll_wait() 可以只用 1 个套接字和 1 个事件> 1 - EPOLLIN?

Can epoll_wait() > 1 with only 1 socket and 1 event -- EPOLLIN?

本文关键字:事件 gt EPOLLIN 套接字 epoll wait      更新时间:2023-10-16

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

我是否可能为该套接字获取epoll_wait()>1(假设超时=-1),并且事件为EPOLLIN?

或者,即使有多个数据包,epoll_wait()也会返回1吗?

提前谢谢。

epoll_wait返回事件的数量,根据文档,该数量等于"准备I/O的文件描述符的数量"。因此,您无法获得超过已注册的文件描述符数量的事件。

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

此外,timeout=0,而不是-1。