1. 程式人生 > >並非所有流浪者都迷失了自我

並非所有流浪者都迷失了自我

Libevent 學習筆記

為了準備實習,提前學習一下Libevent,由於官方文件主要都是在介紹庫的內容,有很多坑還是得自己踩,所以開一篇文章記錄一下

安裝&&部署

安裝還是比較容易,安裝github上的步驟就可以順利完成,就是make install這一步是需要root許可權的,不然會出現拒絕訪問的情況。 安裝完成之後按照官方文件的教程寫了一個很簡單的log程式碼

#include <event2/event.h>
#include <stdio.h>

static FILE *logfile = NULL;
static void discard_cb
(int severity, const char *msg) { /* This callback dose nothing. */ } 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; } fprintf(logfile, "[%s]%s\n", s, msg); } /* Turn off all logging form 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 const *argv[]) { FILE *file = fopen("log.txt", "w"); set_logfile(file); write_to_file_cb(_EVENT_LOG_MSG, "Hello world"); suppress_logging(); return 0; }

編譯命令為

gcc test.c -levent

這時如果直接執行會報找不到庫檔案

error while loading shared libraries: libevent.so.2.2.0

查了stackoverflow,發現需要把/usr/local/lib下的檔案連結到/usr/lib才可以

sudo ln -s /usr/local/lib/libevent.so.2.2.0 /usr/lib/libevent.so.2.2.0