码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-05-30 15:56:27      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:eva   stdio.h   使用   int   回调   分析   null   初始化   成员   

练习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\n"); 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; }

 测试结果:

技术分享

 

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

标签:eva   stdio.h   使用   int   回调   分析   null   初始化   成员   

原文地址:http://www.cnblogs.com/zxiner/p/6920101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!