代码编织梦想

深入理解libevent事件库的原理与实践技巧_libevent 实现原理-爱代码爱编程

libevent分析 一、libevent简介1.1、libevent编译 二、reactor简介2.1、IO2.2、事件2.3、IO与事件的关系 三、libevent使用层次四、libevent封

libevent、libev框架介绍_cheems~的博客-爱代码爱编程

libevent、libev框架介绍 前言概述libevent编译安装libeventlibevent的封装层次 IO事件检测的封装与api介绍事件管理器event_base`构建事件管理器event_base_

libuv库概述及libevent、libev、libuv对比(转载)_ufgnix0802的博客-爱代码爱编程

Libuv库概述及libevent、libev、libuv对比(转载) 背景   node.js最初发起于2009年,是一个可以让JavaScript代码脱离浏览器的执行环境也可以执行的项目,Libuv使用的是Google的V8解析引擎和Marc Lehmann的Libev。Node.js将事件驱动的I/O模型与适合该模型的编程语言(JavaScrip

TekiXquic 的使用-爱代码爱编程

简介 tekixquic 是基于 Xquic+libev 进行二次封装的Android sdk库,为了方便理解和使用,沿用了okhttp的封装方式模式,同时沿用了短链接和长链接的思维。通过get跟post接口可以快速的实现数据传输 sdk导入 第一步:引入maven 在allprojects中引入(目前是snapshot版本所有暂时需要) mave

libev库解剖(1)-爱代码爱编程

libev的安装 (注意,libev仅支持linux) 从github下载源码 源码 进入源码目录,安装指令三连: ./configure make make install 这样就安装完成了,默认安装在/usr/local/lib 在编写程序时,引用<ev.h>, 并在编译时,指定 -lev 选项就可以了 从示例程序看架构

C-libev学习笔记-事件库源码阅读9-API-ev_loop_fork(),ev_backend(),ev_now_update()-爱代码爱编程

ev_loop_fork() 函数声明: /* this needs to be called after fork, to duplicate the loop */ /* 这个函数要在fork之后调用,去复制循环*/ /* when you want to re-use it in the child */ /* 当你想去 重用它 在子进程中*/

C-libev学习笔记-事件库源码阅读8-API-ev_realloc(),ev_now(),ev_loop_destroy()-爱代码爱编程

ev_realloc() 函数原型: //static inline_speed void * ev_realloc (void *ptr, long size) { ptr = alloc (ptr, size);//alloc 是函数指针,其将调用 ev_realloc_emul() 函数来申请内存 if (!ptr &&

C-libev学习笔记-事件库源码阅读7-API-ev_default_uc_(),ev_is_default_loop(),ev_loop_new(),ev_malloc(),ev_free()-爱代码爱编程

ev_default_loop_uc_() 函数原型: //EV_INLINE 用于头文件里的函数,此函数位于ev.h EV_INLINE struct ev_loop * ev_default_loop_uc_ (void) EV_THROW { extern struct ev_loop *ev_default_loop_ptr; ret

C-libev学习笔记-事件库源码阅读6-API-ev_default_loop(),ev_init()-爱代码爱编程

ev_default_loop() 声明: EV_API_DECL struct ev_loop *ev_default_loop (unsigned int flags EV_CPP (= 0)) EV_THROW; EV_API_DECL int ev_default_loop (unsigned int flags EV_CPP (= 0))

C-libev学习笔记-事件库源码阅读5-API-ev_set_allocator(),ev_set_syserr_cb()-爱代码爱编程

ev_set_allocator() 函数声明: /* Sets the allocation function to use, works like realloc. * It is used to allocate and free memory. * If it returns zero when memory needs to be all

C-libev学习笔记-事件库源码阅读4-API-ev_supported_backends()等,ev_time(),ev_sleep()-爱代码爱编程

上篇文章讲述的两个函数放到linux跑一下试试: int version_major=-1; int version_minor=-1; version_major = ev_version_major(); version_minor = ev_version_minor(); printf("version_major

C-libev学习笔记-事件库源码阅读3-API-ev_version_major(),ev_version_minor()-爱代码爱编程

上篇阅读了ev.h里面一些监视器的声明,这篇阅读API声明。 ev.h 在对于API的声明部分,开头就是一个条件宏: #if EV_PROTOTYPES EV_API_DECL int ev_version_major (void) EV_THROW; EV_API_DECL int ev_version_minor (void) EV_THROW;

C-libev学习笔记-事件库源码阅读2-各种监视器源码解析-爱代码爱编程

‘基类’与‘派生类’ 基类在上文提到,是 /* base class, nothing to see here unless you subclass */ typedef struct ev_watcher { EV_WATCHER (ev_watcher) } ev_watcher; /* base class, nothing to see

C-libev学习笔记-事件库源码阅读-1-爱代码爱编程

特征 libev是一个用C语言编写的轻量级的事件驱动库,支持多种IO复用接口。 IO接口有:select,poll,epoll,kqueue等 支持的事件: ev_io; //IO读写 ev_stat; //文件属性 ev_signal;//信号 ev_timer;//定时器 ev_periodic;//绝对定时器 ev_child;//子进程 ev

C-libev 小型服务器代码示例-爱代码爱编程

代码非原创,只做更改和阅读,学习使用 环境:CentOS 8,QT;可以运行 #include <stdio.h> #include <unistd.h>//提供对POSIX操作系统API的访问功能的头文件,如fork,pipe,io原语 #include <stdlib.h> #include <math.

C-libev 示例代码阅读-爱代码爱编程

第一次阅读libev代码,学习用 环境:CentOS 8,QT;可以运行 #include <stdio.h> #include <ev.h> #include <signal.h> #include <sys/unistd.h> #include <string.h> //libev的结构

事件驱动库 libev 使用详解-爱代码爱编程

C/C++Linux服务器开发/后台架构师知识体系 libev 是一个通过 C 语言编写的,高性能的事件循环库,支持多种事件类型,与此类似的事件循环库还有 libevent、libubox 等,在此详细介绍下 libev 相关的内容。 简介 这是一个简单而且高性能的事件库,支持常规的 IO、定时器等事件,而且没有任何依赖,同时支持多线程模式。 关于

PHP扩展安装与使用系列教程(34) --- libev - 全异步IO扩展-爱代码爱编程

libev - 全异步IO扩展 假设 可自定义 php 安装目录: /root/php/bin/php74php 超链接目录路径 : /usr/bin源码目录 : /root/php/packagesphp.ini 路径 : /root/php/bin/php74/lib/php.ini >> PHP源码编译进入源码目录 cd /root

libev中的gcc内嵌函数-爱代码爱编程

在学习libev的过程中,遇到了大量的gcc内嵌函数,大多是为了提升性能而使用的,这里做一个汇总和介绍,持续更新 1、__builtin_expect:该函数是gcc引入的,为的是让程序员讲最有可能执行的分支告诉编译器,达到性能提升的效果 源码: //判断GNU版本号,如果不是gcc编译器,则不使用__builtin_expect函数 //否则如果主版本

libev学习之突发奇想:c语言强取“派生类“的成员-爱代码爱编程

c语言没有类的概念,更没有基类和派生类的概念,但我们可以通过一些手段来实现所谓的派生类 在学libev源码中,可以看到很多c语言实现的基类和派生类的概念。这里简化的实现了一下,并且通过基类的指针强行取到派生类的成员(但这种做法并不可取) #include <stdio.h> //这里定义基类的所有成员 #define BASE \