首页 > 代码库 > Libevent源码分析—从使用Libevent库开始
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\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库开始
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。