黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Libevent(3)— 基礎(chǔ)庫(kù)

系統(tǒng) 2281 0

轉(zhuǎn)自:http://name5566.com/4202.html

?

參考文獻(xiàn)列表:
http://www.wangafu.net/~nickm/libevent-book/

此文編寫的時(shí)候,使用到的 Libevent 為 2.0.21

常用基本數(shù)據(jù)類型

  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]

時(shí)間相關(guān)

  1. // 用于加或者減前兩個(gè)參數(shù),結(jié)果被保存在第三個(gè)參數(shù)中
  2. #define evutil_timeradd ( tvp , uvp , vvp ) /* ... */
  3. #define evutil_timersub ( tvp , uvp , vvp ) /* ... */
  4. ?
  5. // 清除 timeval 將其值設(shè)置為 0
  6. #define evutil_timerclear ( tvp ) /* ... */
  7. // 判斷 timeval 是否為 0,如果是 0 返回 false,否則返回 true
  8. #define evutil_timerisset ( tvp ) /* ... */
  9. ?
  10. // 比較兩個(gè) timeval
  11. // 使用的時(shí)候這樣用:
  12. // evutil_timercmp(t1, t2, <=) 含義為判斷 t1 <= t2 是否成立
  13. // cmp 為所有的 C 關(guān)系操作符
  14. #define evutil_timercmp ( tvp , uvp , cmp )
  15. ?
  16. // 獲取當(dāng)前時(shí)間并保存到 tv
  17. // tz 目前無(wú)用
  18. int evutil_gettimeofday ( struct timeval * tv , struct timezone * tz );

Socket API

  1. // 用于關(guān)閉一個(gè) socket
  2. int evutil_closesocket ( evutil_socket_t s );
  3. #define EVUTIL_CLOSESOCKET ( s ) evutil_closesocket ( s )
  4. ?
  5. // 返回當(dāng)前線程的最后一次 socket 操作的錯(cuò)誤碼
  6. #define EVUTIL_SOCKET_ERROR ()
  7. // 改變當(dāng)前 socket 的錯(cuò)誤碼
  8. #define EVUTIL_SET_SOCKET_ERROR ( errcode )
  9. // 返回特定的 sock 的錯(cuò)誤碼
  10. #define evutil_socket_geterror ( sock )
  11. // 通過(guò) socket 錯(cuò)誤碼獲取到一個(gè)字符串描述
  12. #define evutil_socket_error_to_string ( errcode )
  13. ?
  14. // 設(shè)置 sock 為非阻塞的 socket
  15. int evutil_make_socket_nonblocking ( evutil_socket_t sock );
  16. ?
  17. // 設(shè)置 sock 的地址可重用
  18. int evutil_make_listen_socket_reuseable ( evutil_socket_t sock );

字符串相關(guān)

  1. // 它們對(duì)應(yīng)于標(biāo)準(zhǔn)的 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 );

安全的隨機(jī)數(shù)生成

    1. // 此函數(shù)將使用隨機(jī)的數(shù)據(jù)填充 n 個(gè)字節(jié)的 buf
    2. void evutil_secure_rng_get_bytes ( void * buf , size_t n );

Libevent(3)— 基礎(chǔ)庫(kù)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論