Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 可以等待吗;一个只有一个插座和一个事件——埃普林?_C++_C_Linux_Epollet - Fatal编程技术网

C++ 可以等待吗;一个只有一个插座和一个事件——埃普林?

C++ 可以等待吗;一个只有一个插座和一个事件——埃普林?,c++,c,linux,epollet,C++,C,Linux,Epollet,假设我对epoll|u create1()感兴趣,只对EPOLLIN|EPOLLET for 1套接字感兴趣 是否可能为该套接字获取epoll_wait()>1(假设超时=-1),并且事件为EPOLLIN 或者,即使有多个数据包,epoll_wait()是否也会返回1(比如说,我在epoll_wait循环中故意暂停程序的几秒钟) 提前感谢。epoll\u wait返回事件数,根据文档,它等于“准备好进行I/O的文件描述符数”。因此,您获得的事件数不能超过已注册的文件描述符数。根据这些文档,它应该

假设我对epoll|u create1()感兴趣,只对EPOLLIN|EPOLLET for 1套接字感兴趣

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

或者,即使有多个数据包,epoll_wait()是否也会返回1(比如说,我在epoll_wait循环中故意暂停程序的几秒钟)


提前感谢。

epoll\u wait
返回事件数,根据文档,它等于“准备好进行I/O的文件描述符数”。因此,您获得的事件数不能超过已注册的文件描述符数。

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


此外,超时=0,而不是-1

使用边缘触发模式时,您必须特别小心地为触发的每个事件类型耗尽文件描述符,否则您将看不到未来的事件。谢谢。timeout=-1表示阻塞,timeout=0表示非阻塞tho:)如果套接字准备好一些数据,然后断开连接,则epoll_wait()将首先返回1,event=EPOLLIN,然后下一个epoll_wait()将返回1,event=epolldhup?换句话说,epoll_wait()不会为同一个文件描述符返回2,而是为两个不同的事件返回2?@Hei:问得好。大概手册上说事件是组合的,所以也许您应该检查可读性以及hup。