libevent的源代碼雖然都在一層文件夾下,可是其代碼分類至關清晰.只要分爲頭文件,內部使用頭文件,輔助功能函數,日誌,libevent框架,對系統I/O多路複用機制的封裝,信號管理,定時事件管理,緩衝區管理,基本數據結構和libevent的兩個實用庫等幾個部分,有些部分可能就是一個源文件.git
libevent公用頭文件都安裝在event2目錄中,分爲三類:github
其中compat/sys/queue.h 中一系列宏定義了5個數據結構:單向鏈表,雙向鏈表,簡單隊列,Tail 隊列,環形隊列服務器
event.c : event主要方法實現數據結構
epoll.c : 對epoll的封裝框架
select.c : 對select的封裝異步
devpull.c : 對dev/poll的封裝socket
kqueue.c : 對kueue的封裝函數
signal.c : 對信號事件的處理佈局
evutil.c : 一些輔助功能函數的實現,包含建立socket pair和一些時間操做函數學習
log.c : log日誌實現
buffer*.c : 對緩衝區封裝
http和evdns 是基於libevent實現的http服務器和異步dns查詢庫.
部份內容整理來源與互聯網博客,僅做學習,分享,若有侵犯,望聯繫刪除
若是以爲有用,能夠Github上star並鼓勵我,或者Pull Reauest 修正