一、 示例介绍
每隔一秒循环打印信息“Come On!”
二、 代码编译和运行结果
1. 编译命令: g++ -o timer timer.cpp -levent
2. 运行结果:
[root@f8s test_timer]# ./timer
Come On!
Come On!
Come On!
Come On!
Come On!
三、 代码展示
/*
* libevent定时器事件的运用示例: 每隔一秒打印Come On!
*/
#include <stdio.h>
#include <iostream>
// libevent头文件
#include <event.h>
using namespace std;
// 定时事件回调函数
void onTime(int sock, short event, void *arg)
{
cout << "Come On!" << endl;
struct timeval tv;
tv.tv_sec = 1;
tv.tv_usec = 0;
// 重新添加定时事件(定时事件触发后默认自动删除)
event_add((struct event*)arg, &tv);
}
int main()
{
// 初始化
event_init();
struct event evTime;
// 设置定时事件
evtimer_set(&evTime, onTime, &evTime);
struct timeval tv;
tv.tv_sec = 1;
tv.tv_usec = 0;
// 添加定时事件
event_add(&evTime, &tv);
// 事件循环
event_dispatch();
return 0;
}
四、 编译问题
1. 问题现象
./timer: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
2. 解决办法
ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2
五、 代码下载