TKeed源码分析之EPOLL边缘触发模式监听事件

EPOLL边缘触发模式监听事件,EPOLL是LINUX特有。众所周知,epoll维护了一个红黑树,来快速查找到有数据到来的fd对应的epoll_event结构体,从而copy给用户态,供用户详细地处理。
epoll是linux系统特有的I/O复用函数,epoll使用一组函数来完成任务,而不是单个函数,epoll把用户关心文件描述符放在内核的一个事件表当中,epoll需要使用一个额外的文件描述符来唯一标志内核的这个事件表,这个文件描述符用epoll_create()函数创建。

struct epoll_event* events;//用来存储发生事件的文件描述符

int tk_epoll_create(int flags){
    int epoll_fd = epoll_create1(flags);//如果flags为0,则除了删除过时大小参数这一事实外epoll_create1()与epoll_create()相同
    if(epoll_fd == -1)
        return -1;
    events = (struct epoll_event*)malloc(sizeof(struct epoll_event) * MAXEVENTS);//为events分配内存
    return epoll_fd;
}

int epoll_fd = tk_epoll_create(0);
  1. epoll_create()函数
    #include <sys/epoll.h>
    int epoll_create(int size);
    int epoll_create1(int flags);
    //linux2.6.8开始size被忽略,但是必须
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值