一、epoll_wait函数
1.1、函数定义
int epoll_wait(int epfd, struct epoll_event * events, int maxevents, int timeout);
作用: 等待监听的所有fd相应事件的产生。
1.2、参数详解:
1) int epfd: epoll_create()函数返回的epoll实例的句柄。
2) struct epoll_event * events: 接口的返回参数,epoll把发生的事件的集合从内核复制到 events数组中。events数组是一个用户分配好大小的数组,数组长度大于等于maxevents。(events不可以是空指针,内核只负责把数据复制到这个 events数组中,不会去帮助我们在用户态中分配内存)
3) int maxevents: 表示本次可以返回的最大事件数目,通常maxevents参数与预分配的events数组的大小是相等的。
4) int timeout: 表示在没有检测到事件发生时最多等待的时间,超时时间(>=0),单位是毫秒ms,-1表示阻塞,0表示不阻塞。
1.3、返回值:
成功返回需要处理的事件数目。失败返回0,表示等待超时。