目录
epoll原理
epoll_create
该函数生成一个epoll专用的文件描述符。
int epoll_create(int size);
-
size:epoll上能关注的最大文件描述符数
epoll_ctl
用于控制某个epoll文件描述符事件,可以注册、修改、删除
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
-
epfd:epoll_create生成的epoll专用的文件描述符
-
op:
-
EPOLL_CTL_ADD 注册
-
EPOLL_CTL_MOD 修改
-
EPOLL_CTL_DEL 删除
-
-
fd:关联的文件描述符
-
event:告诉内核要监听什么事件
代码块
typedef union epoll_data {
void *ptr;
int fd;
uint32_t u32;
uint64_t u64;
} epoll_data_t;
struct epoll_event {
uint32_t event;
epoll_data data;
}
events:
EPOLLIN 读
EPOLLOUT 写
EPOLLERR 异常