#include<stdio.h>
#include<unistd.h>
#include<sys/epoll.h>
struct t_connection
{int fd;void *(*call)(t_connection*);
};void* f(t_connection* c)
{char buf[1024];read(c->fd, buf, 1);//这里每次取一个字符后,epoll_wait不会被触发printf("recv: %c\n", buf[0]);
}
int main()
{int epfd, nfds;struct epoll_event ev;struct epoll_event events[5];t_connection connection;connection.fd=STDIN_FILENO;connection.call = f;epfd = epoll_create(1);ev.data.ptr = (void*) &connection;ev.events = EPOLLIN | EPOLLET;epoll_ctl(epfd, EPOLL_CTL_ADD, STDIN_FILENO, &ev);for(;;){nfds = epoll_wait(epfd, events, 5, -1);for(int i = 0; i < nfds; ++i){t_connection *c =(t_connection*) events[i].data.ptr;c->call(c);}}
}

epoll示例(边沿触发)相关推荐

  1. socket编程 及select poll epoll示例

    [cpp] view plain copy 1.关于字节排序    网际协议采用大端字节序,来传输多字节整数.    系统提供了转换的宏定义,如果主机与网际协议相同,则宏定义为空. 2.客户端    ...

  2. epoll示例(水平触发)

    #include<stdio.h> #include<unistd.h> #include<sys/epoll.h> struct t_connection {in ...

  3. epoll示例程序——服务端

    源码: #include <sys/epoll.h> #include <stdio.h> #include <stdlib.h> #include <str ...

  4. epoll示例程序——客户端

    源码: #include <sys/types.h> #include <sys/socket.h> #include <stdio.h> #include < ...

  5. epoll监听文件_epoll使用详解

    epoll介绍 epoll的行为与poll(2)相似,监视多个有IO事件的文件描述符.epoll除了提供select/poll那种IO事件的水平触发(Level Triggered)外,还提供了边缘触 ...

  6. Linux系统编程——I/O多路复用select、poll、epoll

    参考:https://segmentfault.com/a/1190000003063859 Linux下的I/O复用与epoll详解:https://www.cnblogs.com/lojunren ...

  7. epoll背后的原理

    1 简介 Epoll 是个很老的知识点,是后端工程师的经典必修课.这种知识具备的特点就是研究的人多,所以研究的趋势就会越来越深.当然分享的人也多,由于分享者水平参差不齐,也产生的大量错误理解. 今天我 ...

  8. Linux网络编程——I/O复用函数之epoll

    https://blog.csdn.net/lianghe_work/article/details/46544567 一.epoll概述 epoll 是在 2.6 内核中提出的,是之前的 selec ...

  9. Linux内核剖析-----IO复用函数epoll内核源码剖析

    本文参考董浩博客 http://donghao.org/uii/   epoll内核实现 (1)内核为epoll做准备工作 这个模块在内核初始化时(操作系统启动)注册了一个新的文件系统,叫" ...

最新文章

  1. MSM USB插入流程代码分析
  2. POJ 3417 Network
  3. cheat sheet for cs221 at stanford: good luck
  4. 严重红色警告-虾子+维C=砒霜
  5. 如何看屈曲因子_Abaqus 非线性屈曲分析方法
  6. 80x86 register and memory mode
  7. 【特色团队采访】1+1+1>3?看新人团队如何高效合作
  8. 如何开发一个多种语言版本的C#程序
  9. 台式电脑连接电脑主机与显示器
  10. html获取本机ip,获取本机IP地址的实例(JavaScript / Node.js)
  11. 人力资源专员岗位职责和要求
  12. 2019 计蒜之道 初赛 第三场 - 淘宝商品价格大PK
  13. ACM常用算法模版(常用函数与STL、重要公式与定理)
  14. 2022年测试工程师面试题大合集「 功能测试,自动化测试等」300道题
  15. 计算机网络的三种交换方式
  16. 孤独,是优秀的必经之路
  17. python from. import失败_彻底搞懂Python 中的 import 与 from import
  18. 【 长尾理论在现实中的巨大威力】
  19. django的优缺点总结 - Python Web开发面试必备
  20. vue-seamless-scroll无缝滚动的实现

热门文章

  1. Win11预览版镜像泄露,来看看!
  2. 用了这么多年 curl,竟然不知道还有这种用法?!
  3. 终于还是对“带薪拉SHI”出手了...
  4. 京东的热点key探测系统发布,单机 QPS 提升至 37 万
  5. 掌握这35 个小细节,助你有效提升 Java 代码的执行效率!
  6. 是什么使你留在你的公司
  7. 来谈下高并发和分布式中的幂等处理
  8. activemq broker集群_17 个方面,综合对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ
  9. win10下编译和使用mnn 2021
  10. ubuntu MNN编译安装