
以epoll相关接口构成的高级IO
不仅是名称上类似,epoll与poll的功能也是类似的,但是按man手册的说法,epoll是为处理大批量句柄而做了改进的poll,它几乎具备了之前所介绍的select和poll构成的高级IO的一切优点,因此它被公认为Linux2.6下性能最好的多路I/O就绪通知方法
认识 epoll 系列接口epoll有3个相关的系统调用
来自头文件<sys/epoll.h>
epoll_create该接口用于创建epoll实例,它的返回值我们称为epfd
1int epoll_create(int size);
根据man手册,自Linux 2.6.8之后,参数size将会被忽略,但是必须大于0
epoll_ctlepoll的事件注册函数
1int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
这一系统用于增、改、查位于epfd对应的epoll实例内的待监听的文件描述符列表
参数描述
epfd: 由先前的epoll_create产生的epfd
op: 操作代码,有如 ...