博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何编译和安装libevent【转】
阅读量:6655 次
发布时间:2019-06-25

本文共 2022 字,大约阅读时间需要 6 分钟。

转自:

来自: 

如何编译和安装libevent

编译和安装步骤:

$ apt-get install git
$ git clone https://github.com/libevent/libevent.git
$ cd libevent
$ apt-get install cmake
$ apt-get install libssl-dev
$ mkdir build && cd build
$ cmake .. # Default to Unix Makefiles.
$ make
$ make verify # (optional)
$ make install
一些学习文档:

Fast portable non-blocking network programming with Libevent: 
libevent-examples:  
multi-thread libevent:  
针对第一个例子:

le.c内容:

#include 
#include
#define EVENT_LOG_DEBUG 0#define EVENT_LOG_MSG 1#define EVENT_LOG_WARN 2#define EVENT_LOG_ERR 3/* Deprecated; see note at the end of this section */#define _EVENT_LOG_DEBUG EVENT_LOG_DEBUG#define _EVENT_LOG_MSG EVENT_LOG_MSG#define _EVENT_LOG_WARN EVENT_LOG_WARN#define _EVENT_LOG_ERR EVENT_LOG_ERRtypedef void (*event_log_cb)(int severity, const char *msg);void event_set_log_callback(event_log_cb cb);static void discard_cb(int severity, const char *msg){ /* This callback does nothing. */}static FILE *logfile = NULL;static void write_to_file_cb(int severity, const char *msg){ const char *s; if (!logfile) return; switch (severity) { case _EVENT_LOG_DEBUG: s = "debug"; break; case _EVENT_LOG_MSG: s = "msg"; break; case _EVENT_LOG_WARN: s = "warn"; break; case _EVENT_LOG_ERR: s = "error"; break; default: s = "?"; break; /* never reached */ } fprintf(logfile, "[%s] %s\n", s, msg);}/* Turn off all logging from Libevent. */void suppress_logging(void){ event_set_log_callback(discard_cb);}/* Redirect all Libevent log messages to the C stdio file 'f'. */void set_logfile(FILE *f){ logfile = f; event_set_log_callback(write_to_file_cb);}int main(int argc, char **argv){FILE *fp=fopen("/tmp/test.txt", "w+");set_logfile(fp);fclose(fp);return 0;}

$ gcc le.c -o le -levent 
$ ./le 
没有输出任何文本到/tmp/test.txt,因为main函数中没有调用log,当然文中建议我们不要直接使用用户提供的event_log_cb回调函数,因为这样做是不安全的。 
有人翻译了这本文档,可以参考下: 
http://popozhu.github.io/page/7/ 
http://popozhu.github.io/page/6/ 

转载地址:http://eqtto.baihongyu.com/

你可能感兴趣的文章
javascript-函数和定时器
查看>>
jmeter逻辑控制器说明
查看>>
jxl下拉长度的问题,Validation list exceeds maximum number of characters - truncating
查看>>
ubuntu下open***搭建
查看>>
如何优化100s的Elasticsearch 查询到1s以内
查看>>
MongoDB Hello World
查看>>
我的友情链接
查看>>
感谢母亲
查看>>
用面向对象思想实现时钟C++描述
查看>>
优秀网页设计:图标在网页设计中应用的20佳案例
查看>>
linux07-进程与系统引导
查看>>
Git命令的基本使用(一)
查看>>
Android 开发环境配置图文教程(jdk+eclipse+android sdk)
查看>>
Coding and Paper Letter(十九)
查看>>
【转】Java:Session详解
查看>>
LeetCode - 101. 对称二叉树
查看>>
HTTP 状态码详解
查看>>
学习笔记——STORAGE STRUCTURE
查看>>
lvm基本应用
查看>>
TabHost页和子Activity之间的通讯
查看>>