libevent学习笔记 —— 第一个程序:计时器

用libevent写个定时器其实步骤不多:

1、初始化libevent

2、设置事件

3、添加事件

4、进入循环

由于定时事件触发之后,默认自动删除,所以如果要一直计时,则要在回调函数中重新添加定时事件。

 1  ///
 2  /// @file    timer.cc
 3  /// @author  marrs([email protected])
 4  /// @date    2017-10-18 21:14:38
 5  ///
 6  
 7 #include 
 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 }

 

你可能感兴趣的:(libevent学习笔记 —— 第一个程序:计时器)