![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
libevent源码深度剖析
许糖豆
这个作者很懒,什么都没留下…
展开
-
libevent源码深度剖析之队列
一、单链表 /* * Singly-linked List definitions. */ #define SLIST_HEAD(name, type) \ struct name { \ struct type *slh_first; /* first element */ \ } #define SLIST_HEAD_INITIALIZER(head) ...原创 2020-05-04 14:44:02 · 313 阅读 · 0 评论 -
libevent源码深度剖析之devpoll.c
第一章基础知识 1.1 pread和pwrite函数 #include <unistd.h> ssize_t pread(int fd, void *buf, size_t count, off_t offset); ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset); pread简单来说就是在指定偏...原创 2020-05-02 22:03:18 · 235 阅读 · 0 评论 -
libevent源码深度剖析之evutil_time.c
第一章 time基础知识 1.1 struct timeval /* * Structure used in select() call, taken from the BSD file sys/time.h. */ struct timeval { long tv_sec; /* seconds */ long tv_usec; ...原创 2020-05-02 16:32:24 · 525 阅读 · 0 评论 -
libevent源码深度剖析之epoll.c
第一章 poll基础知识 select() 和 poll() 系统调用的本质一样,poll() 的机制与 select() 类似,与 select() 在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是 poll() 没有最大文件描述符数量的限制(但是数量过大后性能也是会下降)。poll() 和 select() 同样存在一个缺点就是,包含大量文件描述符的数组被整体复...原创 2020-05-02 11:35:43 · 458 阅读 · 0 评论 -
libevent源码深度剖析之源代码组织结构
第一章 源代码组织结构 Libevent的源代码虽然都在一层文件夹下面,但是其代码分类还是相当清晰的,主要可分为头文件、内部使用的头文件、辅助功能函数、日志、libevent框架、对系统I/O多路复用机制的封装、信号管理、定时事件管理、缓冲区管理、基本数据结构和基于libevent的两个实用库等几个部分,有些部分可能就是一个源文件。 源代码中的test部分就不在我们关注的范畴了 1)头文件 ...原创 2020-04-28 20:35:25 · 348 阅读 · 0 评论