一、epoll使用API接口
#include <sys/epoll.h>
int epoll_create(int size)
函数功能:创建epoll实例
参数:size:没有实际含义,但是必须填充大于0的值
返回值:成功返回文件描述符失败返回-1,置位错误码int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)
函数功能:对epoll实例控制
参数:epfd:epoll_create创建文件描述符op:操作方法EPOLL_CTL_ADD:向epoll实例中添加对epoll控制EPOLL_CTL_MOD:修改epoll实例中对epoll控制EPOLL_CTL_DEL:删除epoll实例中对epoll控制fd:被操作的文件描述符,也就是open打开的文件描述符event:时间结构体typedef union epoll_data {void *ptr;int fd; ============> 被操作的文件描述符uint32_t u32;uint64_t u64;} epoll_data_t;struct epoll_event {uint32_t events; /* 事件类型 */ EPOLLIN 可读事件epoll_data_t data; /* 用户数据 */};
返回值:成功返回0失败返回-1,置位错误码int epoll_wait(int epfd, struct epoll_event *events,
int maxevents, int timeout)
函数功能:阻塞监听准备好的事件结构体
参数:epfd:epoll_create创建文件描述符events:返回准备好的事件结构体maxevents:监听最大文件描述符个数timeout:不关心超时,填写-1
返回值:成功返回准备好的文件描述符个数失败返回-1,置位错误码