libevent學習總結

2021-06-22 20:15:13 字數 1403 閱讀 2200

對libevent進行一下簡要的總結,libevent將socket、訊號事件、定時器進行統一管理;

libevent首先會檢查操作支援那種型別的多路復用函式,檢查順序為:evport、kqueue、epoll、devpoll、poll、select。

主要研究了一下libevent 對socket的管理,訊號事件處理和定時器處理粗略看過(本文主要以epoll多路復用方式下的情況進行了簡要的總結)。

在libevent中,所有資料結構的跟為:struct event_base* current_base;

event_base資料結構簡要介紹:

struct event_base ;

current_base 將libevent的所有資料結構串聯在了一起,總結資料結構主要為:多路復用所用的資料結構、註冊訊息元素資料結構、啟用訊息元素資料結構以及時間管理的堆結構

(備註,訊號事件同socket事件同用乙個資料結構);

現主要對struct epollop進行簡要的介紹:

struct epollop ;

struct evepoll ;

event顧名思義是libevent的核心,比較簡單,就不要介紹啦;

現按照使用libevent的順序對各種操作的資料結構進行簡要介紹;

示例**:#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

struct event_base *main_base;

struct event    szevent[1024];

int nglobalcount =0 ;

void time_cb(int fd,short event,void *argc)

void buffered_on_read(struct bufferevent *bev, void * arg)

void rw_data(const int nfd,short event,void *arg)

;short int nretsize = 0;

if(event & ev_read)

}      

if(event & ev_write)       

}int ncount = 0;

void accept_handle(const int sfd, const short nevent, void *arg)

*/printf("accept_handle/n/n");

}int main(int argc,char** argv)

libevent總結學習

memcached用了libevent,但是redis沒有用libevent。redis的 還沒有libevent的三分之一。libevent有下面幾大部分組成 事件管理包括各種io socket 定時器 訊號等事件,也是libevent應用最廣的模組 快取管理是指evbuffer功能 dns是li...

libevent學習過程

libevent是工作時維護人家的 碰到的,得深入了解,記錄一下學習過程。首先的問題是libevent是什麼?查了一下,有個基本認識。libevent 是乙個用c語言編寫的 輕量級的開源高效能事件通知庫,主要有以下幾個亮點 事件驅動 event driven 高效能 輕量級,專注於網路。什麼是事件通...

libevent學習筆記 setvbuf 函式

函式名 setvbuf 用 法 int setvbuf file stream,char buf,int type,unsigned size type 期望緩衝區的型別 iofbf 滿緩衝 當緩衝區為空時,從流讀入資料。或者當緩衝區滿時,向流寫入數 據。iolbf 行緩衝 每次從流中讀入一行資料或...