0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个最简单的事件驱动的IO libevent编程例子

Linux阅码场 来源:未知 作者:邓佳佳 2018-03-23 09:54 次阅读

本文演示一个最简单的基于libevent编程的例子。libevent是事件驱动的IO,适用于“好莱坞原则”。

“好莱坞原则”就是说:“不要给我们打电话,我们会给你打电话(don‘t call us, we‘ll call you)”。

所以基于libevent编程,和传统的阻塞、非阻塞、select等会有一些差异,基于libevent编程的时候,不是我APP去询问kernel能否做I/O,它是发过来的,让IO事件来驱动你。

它的主要流程是:针对IO事件,注册callback函数,一旦事件到来,由事件dispatch引擎,回调你的函数。

下面我们演示一个最简单的例子,这个程序侦听终端设备的标准输入事件,注册了一个回调函数cmd_event():

其中的:

event_set(&ev_cmd, STDIN_FILENO,

EV_READ | EV_PERSIST, cmd_event, NULL);

其实就是侦听STDIN_FILENO的输入,并且挂接cmd_event()回调函数的代码。这样一旦有输入,cmd_event()被调用。cmd_event()会将输入的字符串进行printf的输出打印,程序运行效果如下:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IO
    IO
    +关注

    关注

    0

    文章

    396

    浏览量

    38508
  • 编程
    +关注

    关注

    88

    文章

    3439

    浏览量

    92371
  • 程序员
    +关注

    关注

    4

    文章

    931

    浏览量

    29570

原文标题:一个最简单的事件驱动的IO libevent编程例子

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请教LABVIEW简单的问题

    1,两路模拟输出,用IO控制,高时输出通道1,低时输出通过2,怎么做编程?2,两路模拟输入,用
    发表于 09-29 10:43

    安装libevent报错

    [dudu@localhost libevent-1.3]# makemakeall-recursivemake[1]: 进入目录“/tmp/libevent-1.3”Making all
    发表于 07-30 08:22

    PSRAM简单的读写例子

    下 esp32-s3-devkitc-1 N16R8 上面有 8M PSRAM 是用 SPI 控制的,似乎是满足我需要的。但是,我怎么就找不到 PSRAM 简单的 读写例子,有的是
    发表于 03-03 08:12

    简单的窗口及菜单的例子

    简单的窗口及菜单的例子:  Dos汇编,Win32汇编,硬件资料,丰富的汇编、C 源代码,编程例子详解。
    发表于 05-06 16:36 8次下载

    DSP/BIOS中的IO设备驱动编程技术

    DSP/BIOS中的IO设备驱动编程技术 介绍了DSP/BIOS中I/O设备驱动程序的编写,并给出了一个在TMS320C5402 DSK上开发语音处理程序的实例。  &
    发表于 12-08 14:37 1931次阅读
    DSP/BIOS中的<b class='flag-5'>IO</b>设备<b class='flag-5'>驱动</b><b class='flag-5'>编程</b>技术

    简单IO驱动的智慧

    GPIO驱动是嵌入式系统中最简单驱动,然而有多少电子类高材生在它身上栽了跟头?
    发表于 07-02 17:25 2250次阅读

    labview与access操作简单例子

    做的labview与access操作简单例子,互相学习吧
    发表于 03-15 16:00 87次下载

    各种简单例子源码

    关于单片机开发 基于IAR平台 各种简单例子源码 入门级别
    发表于 06-20 16:09 1次下载

    MFC编程例子

    计算机上的上位机制作工具语言之MFC编程例子
    发表于 09-01 15:01 0次下载

    三菱编程D8099例子

    三菱PLC(可编程逻辑控制器)编程实例项目例程:三菱编程D8099例子
    发表于 12-10 14:39 8次下载

    三菱编程3运输带例子

    三菱PLC(可编程逻辑控制器)编程实例项目例程:三菱编程3运输带例子
    发表于 12-10 14:42 8次下载

    shell编程100个实用例子分享

    shell编程100个实用例子分享
    发表于 01-25 15:39 4次下载

    Libevent网络库的原理与应用

    1. Libevent介绍 Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点: 事件驱动( event-driven),高性能; 轻量级,专注于网络; 源代码
    的头像 发表于 11-09 10:24 223次阅读

    Libevent框架库简介

    一、Libevent简介 Libevent是开源社区一款高性能的I/O框架库,其具有如下特点: 1、跨平台支持。Libevent支持Linux、UNIX和Windows。 2、统一
    的头像 发表于 11-09 16:43 257次阅读
    <b class='flag-5'>Libevent</b>框架库简介

    python最简单for循环例子

    Python是一种简单而又强大的编程语言,通过其清晰的语法和丰富的功能库,我们可以实现各种各样的任务。其中一个最基本的语法结构就是for循环,让我们来看一下如何使用for循环来编写一个最简单
    的头像 发表于 11-21 14:53 487次阅读