epoll 是在Linux 2.6 内核中提出的,是之前select 和poll 的增强版本。相对于select 和poll 来说, epoll 更加灵活,没有描述符限制。epoll 使用一个文件描述符管理多个描述符,将
用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间之间的数据拷贝只需一次。
一、epoll 接口
使用epoll 必须包含下面的这个头文件:#include <sys/epoll .h>
epoll 操作过程需要3 个接口,分别如下:
int epoll_create(int size);
int epoll_ctl(int epfd , int op , int fd , struct epoll_event *event) ;
int epoll_wait(int epfd, struct epoll _event * events, int maxevents, int timeout);
int epoll_create(int size) ;
创建一个epoll 的句柄, size 用来告诉内核要监昕的数目。这个参数不同于select