1.libevent源码直接从libevent的github上获取最新的代码,链接如下:https://github.com/libevent/l...编译方法在这个github的介绍页面很详细,所以赢了在这里多说。2.libevent源码的目录结构我们下载源码后,看到文件和目录很多,常常不知从何下手。一开始我也是这么干的,然后花时间把每个目录和一些主要文件的内容都弄清楚了,这样阅读源码和学习就更容易了。目录结构内容如下:目录名目录内容。deps中存放的是plo后缀的文件,没看懂是什么,可能是一些编译生成的文件。libs存放生成的.o文件,so文件autom4te.cache也被编译或安装对于一些需要的文件,我不明白cmake存放cmake文件的具体功能。compat配置cmake编译所需的头文件和源文件路径。只有queue.h定义了很多宏定义,主要用于单链表、链表、简单队列、尾队列、循环队列等结构,包括当前目录头文件是老版本文件,最新版本使用头文件在include/event2中,注意include/event2中compat后缀的头文件都是在版本更新后,为了向后兼容而存在的。我们这里只研究最新版本,所以忽略compat后缀的文件。m4存储m4文件。m4是unix下的一种编程语言,m4文件都是用m4语言写的,通常是因为configure会依赖它的sample不用说,使用libevent的存储demo代码test存储单元测试代码win32_code这个目前未知,以后会稍后更新内容buffer.h主要是对evbuffer进行操作,围绕structevbuffer进行各种操作。bufferevent.h对structbufferevent执行各种操作。bufferevent_ssl.h获取openssl的structbuffereventdns.h。对structevdns_base进行各种操作结构体event-config.h存放了很多宏定义,编译时根据配置生成。下一篇我们将重点介绍event.hlibevent的核心头文件,它对structevent_base结构体进行操作。http.h对structevhttplistener进行各种操作。h对structevconnlistener进行操作,绑定和监听socket,这里对socket进行操作。rpc.h对structevrpc_base进行操作,可以生成rpcserver和clienttag.h暂时用于将evbuffer转换为具体类型,整型或Thread.hlibevent,比如字符串或者时间结构,支持多线程。使用util.h可以防止c99不受支持,封装了很多系统函数来支持c99。visibility.h定义了一些宏定义,应该动态使用库调用的参数注意:struct后缀的头文件存放了所有的结构体,这里不再单独介绍,libevent.c文件的实现文件为all在下载源码的一级目录下,和上面说的目录在同一层级,所以先介绍到这里,后面再详细介绍libevent的实现和使用。cpp加油站(ID:xy13640954449),作者是linux服务器开发老司机,欢迎大家来撩!
