Libevent源碼分析—從使用Libevent庫開始

練習libevent庫的使用,主要是幾個API的調用順序。根據event.h的開頭註釋部分可知,要使用libevent庫,主要的幾個API及調用順序爲:
        event_base()初始化event_base
        event_set()初始化event
        event_base_set()將event綁定到指定的event_base上
        event_add()將event添加到事件鏈表上,註冊事件
        event_base_dispatch()循環、檢測、分發事件
 
寫個測試程序,每隔1s打印一條信息
#include <stdio.h>
#include <event.h>
#include <time.h>
struct event ev; struct timeval tv;
void timer_cb(int fd, short event, void *arg) //回調函數 { printf("callback function\n"); event_add(&ev, &tv); //從新註冊 }
int main() { struct event_base *base = event_init(); //初始化libevent庫 tv.tv_sec = 1; tv.tv_usec = 0;
event_set(
&ev, -1, 0, timer_cb, NULL); //初始化event結構中成員 event_base_set(base, &ev); event_add(&ev, &tv); //將event添加到events事件鏈表,註冊事件 event_base_dispatch(base); //循環、分發事件
return 0; }

 測試結果:函數

相關文章
相關標籤/搜索