epoll
使用eventpoll
结构体管理文件描述符
rbr
:红黑树结构,用于管理所有被监听的文件描述符
rdlist
:双链表结构,用于存储所有已经准备好进行 I/O 操作的文件描述符
epoll
返回时,只需要将rdlist
中的文件描述符拷贝到用户区,大幅减少了拷贝量epoll
可以直接从 rdlist
中获取已经就绪的文件描述符,而不需要遍历所有被监视的文件描述符epoll_create
:创建一个新的epoll实例(在内核区创建一个eventpoll实例)epoll_ctl
:对epoll实例进行管理,如:
epoll_wait
:返回监听结果<aside>
💡 epoll_create
创建一个新的epoll实例
</aside>
参数
size
:该参数目前已被忽视,输入任意大于0的值即可返回值
epfd
<aside>
💡 epoll_ctl
对epoll实例进行管理,如添加文件描述符信息 / 删除信息 / 修改信息
</aside>
参数
epfd
:epoll实例对应的文件描述符op
:需要进行的操作
EPOLL_CTL_ADD
:添加EPOLL_CTL_MOD
:修改EPOLL_CTL_DEL
:删除fd
:需要检测的文件描述符