epoll

个人主页:Lei宝啊 

愿所有美好如期而遇


目录

epoll简介

epoll接口

epoll工作原理

epoll工作方式

水平触发LT模式

边缘触发ET模式


epoll简介

Linux2.6下公认性能最好的多路转接方法。

epoll接口

epoll_create() creates a new epoll(7) instance.  Since Linux 2.6.8, the size argument is ignored, but must be greater than zero;

这句话的意思是,Linux2.6.8后,这个函数的参数size就被忽略了,但是他的大小必须大于0。这个系统调用是用来创建epoll模型的,至于什么是epoll模型,下面的工作原理那里我们说。他的返回值是一个文件描述符。

我们先不说为什么,只先说用法,为什么下面说。

第一个参数,就是epoll_create的返回值,第二个参数可以有如下取值:

  • EPOLL_CTL_ADD,添加,将使OS监管fd下的event事件
  • EPOLL_CTL_DEL,删除,使OS不再监管fd下的event事件,此时第三个参数可以为nullptr
  • EPOLL_CTL_MOD,修改。

第三个参数,事件集合,将你需要让OS监管的事件填入,有如下值:

  • EPOLLIN : 表示对应的文件描述符可以读 (包括对端 SOCKET 正常关闭);
  • EPOLLOUT : 表示对应的文件描述符可以写;
  • EPOLLPRI : 表示对应的文件描述符有紧急的数据可读 (这里应该表示有带外数据到来);
  • EPOLLERR : 表示对应的文件描述符发生错误;
  • EPOLLHUP : 表示对应的文件描述符被挂断;
  • EPOLLET : 将 EPOLL 设为边缘触发(Edge Triggered)模式, 这是相对于水平触发(Level Triggered)来说的
  • EPOLLON
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lei宝啊

觉得博主写的有用就鼓励一下吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值