(转)Libevent(3)— 基础库
转自:http://name5566.com/4202.html
参考文献列表:
http://www.wangafu.net/~nickm/libevent-book/
此文编写的时候,使用到的 Libevent 为 2.0.21
常用基本数据类型
- evutil_socket_t 用于保存 socket
- ev_uint64_t 取值范围 [0, EV_UINT64_MAX]
- ev_int64_t 取值范围 [EV_INT64_MIN, EV_INT64_MAX]
- ev_uint32_t 取值范围 [0, EV_UINT32_MAX]
- ev_int32_t 取值范围 [EV_INT32_MIN, EV_INT32_MAX]
- ev_uint16_t 取值范围 [0, EV_UINT16_MAX]
- ev_int16_t 取值范围 [EV_INT16_MIN, EV_INT16_MAX]
- ev_uint8_t 取值范围 [0, EV_UINT8_MAX]
- ev_int8_t 取值范围 [EV_INT8_MIN, EV_INT8_MAX]
- ev_ssize_type(signed size_t)取值范围 [EV_SSIZE_MIN, EV_SSIZE_MAX]
时间相关
- // 用于加或者减前两个参数,结果被保存在第三个参数中
- #define evutil_timeradd(tvp, uvp, vvp) /* ... */
- #define evutil_timersub(tvp, uvp, vvp) /* ... */
- // 清除 timeval 将其值设置为 0
- #define evutil_timerclear(tvp) /* ... */
- // 判断 timeval 是否为 0,如果是 0 返回 false,否则返回 true
- #define evutil_timerisset(tvp) /* ... */
- // 比较两个 timeval
- // 使用的时候这样用:
- // evutil_timercmp(t1, t2, <=) 含义为判断 t1 <= t2 是否成立
- // cmp 为所有的 C 关系操作符
- #define evutil_timercmp(tvp, uvp, cmp)
- // 获取当前时间并保存到 tv
- // tz 目前无用
- int evutil_gettimeofday(struct timeval *tv, struct timezone *tz);
Socket API
- // 用于关闭一个 socket
- int evutil_closesocket(evutil_socket_t s);
- #define EVUTIL_CLOSESOCKET(s) evutil_closesocket(s)
- // 返回当前线程的最后一次 socket 操作的错误码
- #define EVUTIL_SOCKET_ERROR()
- // 改变当前 socket 的错误码
- #define EVUTIL_SET_SOCKET_ERROR(errcode)
- // 返回特定的 sock 的错误码
- #define evutil_socket_geterror(sock)
- // 通过 socket 错误码获取到一个字符串描述
- #define evutil_socket_error_to_string(errcode)
- // 设置 sock 为非阻塞的 socket
- int evutil_make_socket_nonblocking(evutil_socket_t sock);
- // 设置 sock 的地址可重用
- int evutil_make_listen_socket_reuseable(evutil_socket_t sock);
字符串相关
- // 它们对应于标准的 snprintf 和 vsnprintf
- int evutil_snprintf(char *buf, size_t buflen, const char *format, ...);
- int evutil_vsnprintf(char *buf, size_t buflen, const char *format, va_list ap);
安全的随机数生成
- // 此函数将使用随机的数据填充 n 个字节的 buf
- void evutil_secure_rng_get_bytes(void *buf, size_t n);
(转)Libevent(3)— 基础库的更多相关文章
- F#之旅5 - 小实践之下载网页(爬虫基础库)
参考文章:https://swlaschin.gitbooks.io/fsharpforfunandprofit/content/posts/fvsc-download.html 参考的文章教了我们如 ...
- 开始编写寄几的 CSS 基础库
前言 在现在的互联网业务中,前端开发人员往往需要支持比较多的项目数量.很多公司只有 1-2 名前端开发人员,这其中还不乏规模比较大的公司.这时前端同学就需要独挡一面支持整个公司上下的前端业务,项目如流 ...
- Python 命令行(CLI)基础库
在 CLI 下写 UI 应用 前阵子看了一下自己去年写的 Python-视频转字符动画,感觉好糗..所以几乎把整篇文章重写了一遍.并使用 curses 库实现字符动画的播放. 但是感觉,curses ...
- JAVA基础库的使用点滴
Idea中双击SHIFT可以搜索[Eclipse中也有],这个很重要,可以找到当前的项目中可以引擎的已有的类,不要再次自己发明轮子 各种Util先在基础库和开源库中找 Base64编码 guava:c ...
- cocos2d-x开发:服务端基础库封装
元旦前面几天都在忙着面试,随后的几天也就一直在做服务端基础库开发方面的工作.对于服务端开发,是很久之前的事情了.那时候我还在大学读书,一直都是在倒腾服务端开发方面的东西,毕业后参加公司工作就是一直从事 ...
- PHP基础库及扩展库安装
一.安装PHP所需的lib库(基础库): 1.yum install zlib-devel libxml2-devel libjpey-devel libjpeg-turbo-devel libico ...
- Light libraries是一组通用的C基础库,目标是为减少重复造轮子而写(全部用POSIX C实现)
Light libraries是一组通用的C基础库,目标是为减少重复造轮子而写实现了日志.原子操作.哈希字典.红黑树.动态库加载.线程.锁操作.配置文件.os适配层.事件驱动.工作队列.RPC.IPC ...
- YARN底层基础库
YARN基础库是其他一切模块的基础,它的设计直接决定了YARN的稳定性和扩展性,YARN借用了MRV1的一些底层基础库,比如RPC库等,但因为引入了很多新的软件设计方式,所以它的基础库更多,包括直 ...
- Python基础库之jieba库的使用(第三方中文词汇函数库)
各位学python的朋友,是否也曾遇到过这样的问题,举个例子如下: “I am proud of my motherland” 如果我们需要提取中间的单词要走如何做? 自然是调用string中的spl ...
- ESP8266开发之旅 网络篇⑥ ESP8266WiFiGeneric——基础库
1. 前言 在前面的博文中,博主介绍到ESP8266WiFi库是包含了很多功能的一个超级库.ESP8266WiFi库不仅仅局限于 ESP8266WiFi.h 和 ESP8266WiFi.cpp ...
随机推荐
- ZOJ2834--Maximize Game Time(树形DP)
写之前觉得很恶心,写完了觉得挺好玩了,1A,棒棒哒~ 题解全在代码注释中了,想清楚思路一路写下了果然没怎么卡 ^_^ /**************************************** ...
- 问题-[Delphi7]程序在WIN7电脑上的日期错误处理
问题现象:我想大家都遇到过在XP上没有问题的日期格式,到了WIN7之后就不行了. 问题原因:因为在WIN7中增加了新的日期格式,但是老的DELPHI未处理(如果我说错了,希望高人指点). 问题处理: ...
- VC++深入详解-第一章学习心得(一)
句柄是系统为资源分配内存的标识号. 相当于一个指针指向一块内存空间,我暂时理解成一个地址,一个门牌号 HWND 窗口句柄 HICON 图标句柄 HCURSOR 光标句柄 HBRUSH 画刷句柄 消息的 ...
- maven依赖范围
Scope: Compile:编译依赖,默认就是compile,在编译.测试.运行都有效 Test:测试依赖,仅测试有效 例如Junit Provided:已提供依赖范围.编译.测试有效,运行时候无效 ...
- js 类似发微博或者微信朋友圈的时间显示 刚刚 几天前
群里的一个小伙伴(NightEagle)写的,共享出来了,我就做个记录. function getDateDiff(dateStr) { var publishTime = getDateTimeSt ...
- jQuery获取鼠标移动方向
<!doctype html> <html> <head> <meta http-equiv="Content-Type&q ...
- javascript中使用md5函数
javascript中使用md5函数 这对于js来讲本来是没有的,现在可以自己定义一个md5的函数,达到加密效果. var hexcase = 0; function hex_md5(a) { if ...
- java利用Google Zxing实现 二维码生成与解析
1.引入zxing 2.使用下面两个类:QRCodeUtil.java和BufferedImageLuminanceSource.java 3.新建单元测试类 复制下面测试代码即可. 1.pom文件中 ...
- 适合高级Java程序员看的12本书
1.Thinking in Java 2.Head First Java 3.Java in a Nutshell 4.The elements of Java style 5.Effective J ...
- Count属性(行数 @)
在PS2.0中,如果返回值为空,则count也会返回空(vm.txt内容为空),如下: (gc d:\vm.txt).count 如果加上@的话,会返回0 @(gc d:\vm.txt).count ...