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

Posted 曾经时光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 <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 }

 

以上是关于libevent学习笔记 —— 第一个程序:计时器的主要内容,如果未能解决你的问题,请参考以下文章

Libevent 学习笔记 ——Libevent 2.0安装与简单演示样例

libevent学习笔记(参考libevent深度剖析)

libevent总结学习

需要关于使用 libevent 动态更改计时器事件的建议

libevent学习笔记 —— 牛刀小试:简易的响应式服务器

rtthread学习笔记系列第一篇:定时器