日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

libevent 1.4.13 / 源代码文件组织

發布時間:2024/10/14 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 libevent 1.4.13 / 源代码文件组织 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、前言

詳細分析源代碼之前,如果能對其代碼文件的基本結構有個大概的認識和分類,對于代碼的分析將是大有裨益的。本節內容不多,我想并不是說它不重要!

二、源代碼組織結構

Libevent 的源代碼雖然都在一層文件夾下面,但是其代碼分類還是相當清晰的,主要可分為頭文件、內部使用的頭文件、輔助功能函數、日志、libevent 框架、對系統 I/O 多路復用機制的封裝、信號管理、定時事件管理、緩沖區管理、基本數據結構和基于 libevent 的兩個實用庫等幾個部分,有些部分可能就是一個源文件。
源代碼中的test部分就不在我們關注的范疇了。

1、頭文件

主要就是 event.h:事件宏定義、接口函數聲明,主要結構體 event 的聲明。

2、內部頭文件

xxx-internal.h:內部數據結構和函數,對外不可見,以達到信息隱藏的目的。

3、libevent框架

event.c:event 整體框架的代碼實現。

4、對系統 I / O 多路復用機制的封裝

  • epoll.c:對 epoll 的封裝。
  • select.c:對 select 的封裝。
  • devpoll.c:對 dev / poll 的封裝。
  • kqueue.c:對 kqueue 的封裝。

5、定時事件管理

min-heap.h:其實就是一個以時間作為 key 的小根堆結構。

6、信號管理

signal.c:對信號事件的處理。

7、輔助功能函數

evutil.h 和evutil.c:一些輔助功能函數,包括創建 socket pair 和一些時間操作函數:加、減和比較等。

8、日志

log.h 和 log.c:log 日志函數。

9、緩沖區管理

evbuffer.c 和 buffer.c:libevent 對緩沖區的封裝。

10、基本數據結構

compat/sys 下的兩個源文件:queue.h 是 libevent 基本數據結構的實現,包括鏈表,雙向鏈表,隊列等。

_libevent_time.h:一些用于時間操作的結構體定義、函數和宏定義。

11、實用網絡庫

http 和 evdns:是基于 libevent 實現的 http 服務器和異步 dns 查詢庫。

轉載于:https://blog.csdn.net/jcjx0315/article/details/79693484

(SAW:Game Over)

總結

以上是生活随笔為你收集整理的libevent 1.4.13 / 源代码文件组织的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。