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 修正