#include <sys/epoll.h>
epoll是Linux内核的一个系统调用,一种可扩展的I/O事件通知机制,最早在Linux内核2.5.44版本引入. 它的功能是监视多文件描述符(monitor multiple file descriptors) 来判断是否有I/O操作。它被设计来代替老版POSIX的select(2)和poll(2)系统调用,以在要求苛刻的应用程序中(需要监视的文件描述符数目很大)获取更好的性能。
API
1. int epoll_create1(int flags); 创建一个epoll对象并返回其文件描述符。(creates an epoll instance and returns a file descriptor referring to that instance)
2. int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
3. int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);
等待任何用epoll_ctl注册的事件,直到至少一个发生或者事件耗尽。在events中返回发生的事件,一次最多有maxevents个事件。
出发模式:edge-triggered 和level-triggered modes.