查看是否已安装
ls -al /usr/lib |grep libevent
没有输出说明未安装
下载
进入官网 http://libevent.org/
我下载的是:libevent-2.0.22-stable.tar.gz
解压
tar -zxvf libevent-2.0.22-stable.tar.gz
编译安装
进入解压目录
cd libevent-2.0.22-stable/
编译安装
./configure -prefix=/usr
make
sudo make install
//查看说明已经安装完成
ls -al /usr/lib |grep libevent
libevent 头文件位于/usr/include/event.h 和 /usr/include/event2 目录
测试实例
#include<sys/signal.h>
#include<event.h>
#include<time.h>
//信号事件处理器
void signal_cb(int fd,short event,void* argc)
{
struct event_base* base = (event_base*)argc;
struct timeval delay = {2,0};
printf("an interrupt signal\n");
//循环2秒
event_base_loopexit(base,&delay);
}
//定时事件处理器
void timeout_cb(int fd,short event,void* argc)
{
printf("timeout\n");
}
int main()
{
struct event_base* base = event_init();
//创建信号事件处理器,处理Ctrl+C 信号
struct event* signal_event = evsignal_new(base,SIGINT,signal_cb,base);
//将事件处理器添加到注册事件队列
event_add(signal_event,NULL);
struct timeval tv = {1,0};
//创建定时事件处理器
struct event* timeout_event = evtimer_new(base,timeout_cb,NULL);
event_add(timeout_event,&tv);
//执行事件循环
event_base_dispatch(base);
event_free(timeout_event);
event_free(signal_event);
event_base_free(base);
return 0;
}