• Libevent源码分析—从使用Libevent库开始


    练习libevent库的使用,主要是几个API的调用顺序。根据event.h的开头注释部分可知,要使用libevent库,主要的几个API及调用顺序为:
            event_base()初始化event_base
            event_set()初始化event
            event_base_set()将event绑定到指定的event_base上
            event_add()将event添加到事件链表上,注册事件
            event_base_dispatch()循环、检测、分发事件
     
    写个测试程序,每隔1s打印一条信息
    #include <stdio.h>
    #include <event.h>
    #include <time.h>
    struct event ev; struct timeval tv;
    void timer_cb(int fd, short event, void *arg) //回调函数 { printf("callback function "); event_add(&ev, &tv); //重新注册 }
    int main() { struct event_base *base = event_init(); //初始化libevent库 tv.tv_sec = 1; tv.tv_usec = 0;
    event_set(
    &ev, -1, 0, timer_cb, NULL); //初始化event结构中成员 event_base_set(base, &ev); event_add(&ev, &tv); //将event添加到events事件链表,注册事件 event_base_dispatch(base); //循环、分发事件
    return 0; }

     测试结果:

  • 相关阅读:
    httpd添加新模块
    编译httpd细节
    apache配置文件说明及一些指令
    xen原理
    EXSI的使用
    VMWare ESX server安装
    虚拟化技术
    Kvm命令集管理虚拟机
    RAID几种方式
    BZOJ1011 [HNOI2008]遥远的行星 【奇技淫巧】
  • 原文地址:https://www.cnblogs.com/zxiner/p/6920101.html
Copyright © 2020-2023  润新知