libevent学习笔记 —— 第一个程序:计时器
用libevent写个定时器其实步骤不多:
1、初始化libevent
2、设置事件
3、添加事件
4、进入循环
由于定时事件触发之后,默认自动删除,所以如果要一直计时,则要在回调函数中重新添加定时事件。
1 /// 2 /// @file timer.cc 3 /// @author marrs(chenchengxi993@gmail.com) 4 /// @date 2017-10-18 21:14:38 5 /// 6 7 #include <iostream> 8 #include "event.h" 9 10 using namespace std; 11 12 void timer(int fd, short event, void *ev) //timer 函数 13 { 14 cout << "timer..." << endl; 15 struct timeval tv; 16 tv.tv_sec = 1; 17 tv.tv_usec = 0; 18 19 // 重新添加定时事件(定时事件触发后默认自动删除) 20 event_add((struct event*)ev, &tv); 21 } 22 23 int main() 24 { 25 struct event ev; 26 struct timeval tv; 27 tv.tv_sec = 1; 28 tv.tv_usec = 0; 29 30 //1.初始化libevent 31 event_init(); 32 33 //2.设置定时事件 34 evtimer_set(&ev,timer,&ev); 35 36 //3.添加定时事件 37 event_add(&ev,&tv); 38 39 //4.进入循环 40 event_dispatch(); 41 42 return 0; 43 }