Libevent(3)— 基础库

系统 1686 0

转自:http://name5566.com/4202.html

 

参考文献列表:
http://www.wangafu.net/~nickm/libevent-book/

此文编写的时候,使用到的 Libevent 为 2.0.21

常用基本数据类型

  1. evutil_socket_t 用于保存 socket
  2. ev_uint64_t 取值范围 [0, EV_UINT64_MAX]
  3. ev_int64_t 取值范围 [EV_INT64_MIN, EV_INT64_MAX]
  4. ev_uint32_t 取值范围 [0, EV_UINT32_MAX]
  5. ev_int32_t 取值范围 [EV_INT32_MIN, EV_INT32_MAX]
  6. ev_uint16_t 取值范围 [0, EV_UINT16_MAX]
  7. ev_int16_t 取值范围 [EV_INT16_MIN, EV_INT16_MAX]
  8. ev_uint8_t 取值范围 [0, EV_UINT8_MAX]
  9. ev_int8_t 取值范围 [EV_INT8_MIN, EV_INT8_MAX]
  10. ev_ssize_type(signed size_t)取值范围 [EV_SSIZE_MIN, EV_SSIZE_MAX]

时间相关

  1. // 用于加或者减前两个参数,结果被保存在第三个参数中
  2. #define evutil_timeradd ( tvp , uvp , vvp ) /* ... */
  3. #define evutil_timersub ( tvp , uvp , vvp ) /* ... */
  4.  
  5. // 清除 timeval 将其值设置为 0
  6. #define evutil_timerclear ( tvp ) /* ... */
  7. // 判断 timeval 是否为 0,如果是 0 返回 false,否则返回 true
  8. #define evutil_timerisset ( tvp ) /* ... */
  9.  
  10. // 比较两个 timeval
  11. // 使用的时候这样用:
  12. // evutil_timercmp(t1, t2, <=) 含义为判断 t1 <= t2 是否成立
  13. // cmp 为所有的 C 关系操作符
  14. #define evutil_timercmp ( tvp , uvp , cmp )
  15.  
  16. // 获取当前时间并保存到 tv
  17. // tz 目前无用
  18. int evutil_gettimeofday ( struct timeval * tv , struct timezone * tz );

Socket API

  1. // 用于关闭一个 socket
  2. int evutil_closesocket ( evutil_socket_t s );
  3. #define EVUTIL_CLOSESOCKET ( s ) evutil_closesocket ( s )
  4.  
  5. // 返回当前线程的最后一次 socket 操作的错误码
  6. #define EVUTIL_SOCKET_ERROR ()
  7. // 改变当前 socket 的错误码
  8. #define EVUTIL_SET_SOCKET_ERROR ( errcode )
  9. // 返回特定的 sock 的错误码
  10. #define evutil_socket_geterror ( sock )
  11. // 通过 socket 错误码获取到一个字符串描述
  12. #define evutil_socket_error_to_string ( errcode )
  13.  
  14. // 设置 sock 为非阻塞的 socket
  15. int evutil_make_socket_nonblocking ( evutil_socket_t sock );
  16.  
  17. // 设置 sock 的地址可重用
  18. int evutil_make_listen_socket_reuseable ( evutil_socket_t sock );

字符串相关

  1. // 它们对应于标准的 snprintf 和 vsnprintf
  2. int evutil_snprintf ( char * buf , size_t buflen , const char * format , ...);
  3. int evutil_vsnprintf ( char * buf , size_t buflen , const char * format , va_list ap );

安全的随机数生成

    1. // 此函数将使用随机的数据填充 n 个字节的 buf
    2. void evutil_secure_rng_get_bytes ( void * buf , size_t n );

Libevent(3)— 基础库


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论