epoll_wait()> 1只有1个插座和1个事件 - EPOLLIN?

时间:2013-08-10 14:25:05

标签: c++ c linux epollet

假设我是epoll_create1()并且只对EPOLLIN |感兴趣EPOLLET适用于1插座。

我有可能获得epoll_wait()>该套接字的1(假设超时= -1)且事件是EPOLLIN?

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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