要用epoll实现多路IO转接需要用的epoll_create()
、epoll_ctl()
、epoll_wait()
三个函数
一、epoll_create(int size):创建一棵监听红黑树
本质是一棵平衡二叉树(红黑树)
参数size:创建红黑树的监听节点数量(但这个数仅供内核参考
返回值:成功指向新创建的红黑树的根节点fd;失败返回-1和errno
二、epoll_ctrl:操作监听红黑树
参数1:epfd是epoll_create的函数返回值,就是图中的那个根节点
参数2:op 对该监听红黑树所做的操作(添加、修改、删除)
EPOLL_CTL_ADD:添加fd到监听红黑树上
EPOLL_CTL_MOD:修改fd在监听红黑树上的监听事件
EPOLL_CTL_DEL:将一个fd从监听红黑树上摘下(取消监听)
参数3:fd 待监听的fd
参数4:event 本质是struct epoll_event的一个结构体,有两个成员分别是①events:有EPLOOIN、EPOLLOUT、EPO