如何编译和安装libevent

 我来答
缘Lai如茨
2016-05-10 · TA获得超过8631个赞
知道大有可为答主
回答量:7534
采纳率:92%
帮助的人:669万
展开全部
#include <event2/event.h>
#include <stdio.h>

#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_ERR

typedef 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回调函数,因为这样做是不安全的。
浙江启扬智能科技有限公司
2023-08-23 广告
在ARM开发板上完成开发后,要将其变成成品,需要进行以下步骤:1. 硬件集成:将开发板上的各种硬件组件集成到一个完整的硬件系统中,以便能够进行后续的制造和测试。2. 软件编译:将开发板上运行的软件代码编译成可执行文件,并在最终硬件系统上测试... 点击进入详情页
本回答由浙江启扬智能科技有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式