赞
踩
Libevent 使用源码安装的方式,源码下载地址:http://libevent.org/
下载下来后,将 Libevent 的压缩包拷贝到 Linux 系统中,然后按照以下步骤执行:
Libevent 是开源社区的一款高性能的 I/O 框架库,作为一个I/O 框架库,Libevent 具有如下特点:
此示例所做的事情就是将文件描述符,索要检测的事件,事件处理的方法交给libevent,如果在此文件描述符上检测到了此事件发生,就调用这个方法处理此事件。
#include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<string.h> #include<assert.h> #include<signal.h> #include<event.h> #include<sys/time.h> void sig_fun(int fd,short ev,void*arg) { printf("sig=%d\n",fd); } void timeout_cb(int fd,short ev,void*arg) { printf("time out\n"); } int main() { struct event_base *base=event_init();//定义一个libevent实例 assert(base!=NULL); //struct event *sig_ev=evsignal_new(base,SIGINT,sig_fun,NULL); struct event *sig_ev=event_new(base,SIGINT,EV_SIGNAL|EV_PERSIST,sig_fun ,NULL); event_add(sig_ev,NULL); struct timeval tv={3,0}; struct event *time_ev = evtimer_new(base,timeout_cb,NULL);//定义事件 event_add(time_ev,&tv);//添加事件 event_base_dispatch(base);//事件循环 event_free(sig_ev); event_free(time_ev); event_base_free(base);
程序结束的两中情况:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。