libevent笔记-辅助函数/类型
2014-12-24 19:39
393 查看
//libevent笔记-辅助函数/类型 //转载请注明出处: yuliying的csdn博客. //libevent定义了一些辅助函数和类型来帮助我们开发应用. //不带函数原型的都是宏. //socket描述符类型: // evutil_socket_t //整数类型,为了兼容没有stdint.h头文件的操作系统: // ev_uint64_t,ev_int64_t,ev_uint32_t,ev_int32_t,ev_uint16_t,ev_int16_t,ev_uint8_t,ev_int8_t //两个timeval相加 , 将结果存储在第三个参数里: // evutil_timeradd(tvp, uvp, vvp) //两个timeval相减 , 将结果存储在第三个参数里: // evutil_timersub(tvp, uvp, vvp) //将timeval置零: // evutil_timerclear(tvp) //检测timeval是否非置零,非置零返回true: // evutil_timerisset(tvp) //比较两个timeval大小,第三个参数为比较操作符(<, >, ==, !=, ⇐, and >=),满足条件返回true : // evutil_timercmp(tvp, uvp, cmp) //获取当前时间和时区: //int evutil_gettimeofday(struct timeval *tv, struct timezone *tz); //关闭socket描述符: // EVUTIL_CLOSESOCKET(s) //设置本线程socket错误的errcode: // EVUTIL_SET_SOCKET_ERROR(errcode) //返回本线程最后一个socket错误的errcode: // EVUTIL_SOCKET_ERROR() //返回本线程特定描述符的最后一个socket错误的errcode: // evutil_socket_geterror(sock) //将socket错误的errno变为错误说明字符串: // evutil_socket_error_to_string(errcode) //将socket设置为非阻塞 // int evutil_make_socket_nonblocking(evutil_socket_t sock); //设置地址可立即重用 // int evutil_make_listen_socket_reuseable(evutil_socket_t sock); //给描述符设置FD_CLOEXEC标记 // int evutil_make_socket_closeonexec(evutil_socket_t sock); //将字符串转换为64位整型数.在一些系统上只支持10进制. // ev_int64_t evutil_strtoll(const char *s, char **endptr, int base); //使用ansii字符集比较字符串 // int evutil_ascii_strcasecmp(const char *str1, const char *str2); // int evutil_ascii_strncasecmp(const char *str1, const char *str2, size_t n); #include <event2/event.h> #include <event2/util.h> #include <stdio.h> int main(){ struct timeval tv1 = {5 , 100}; struct timeval tv2 = {4 , 10}; struct timeval res; //timeval相加 evutil_timeradd( &tv1 , &tv2 , &res); printf("evutil_timeradd(): sec[%d] usec[%d]\n" , res.tv_sec , res.tv_usec); //timeval相减 evutil_timersub( &tv2 , &tv1 , &res); printf("evutil_timersub(): sec[%d] usec[%d]\n" , res.tv_sec , res.tv_usec); //timeval置零 evutil_timerclear(&res); printf("evutil_timerclear(): sec[%d] usec[%d]\n" , res.tv_sec , res.tv_usec); //检测timeval是否非置零 printf("evutil_timerisset(): [%s]\n" , evutil_timerisset(&res) ? "true":"false" ); //比较timeval大小 printf("evutil_timercmp(): tv1 greater than tv2 ? [%s]\n" , evutil_timercmp(&tv1 , &tv2 , > ) ? "true" : "false"); //获取当前时间 evutil_gettimeofday( &res , NULL ); printf("evutil_gettimeofday(): sec[%d] usec[%d]\n" , res.tv_sec , res.tv_usec); //将字符串转换为64位整型数 ev_int64_t num = evutil_strtoll("219730921" , NULL , 10); printf("evutil_strtoll(): %d\n" , num); }
相关文章推荐
- LibEvent中文帮助文档--第9章【辅助类型和函数】
- libevent参考手册第五章:辅助类型和函数
- libevent参考手册第五章:辅助类型和函数
- Libevent:6辅助函数以及类型
- Libevent应用 (四) 辅助类型和函数
- [翻译]libevent参考手册第五章:辅助类型和函数
- libevent参考手册:辅助类型和函数(五)
- libevent参考手册第五章:辅助类型和函数 (七)
- python速查笔记(1) 类型与函数
- python学习笔记12(函数三): 参数类型、递归、lambda函数
- 【c++笔记七】教你使用"const类型的对象、成员函数"和"static类型的成员函数、变量"
- C++ 学习笔记 1.0 : 基本语言(变量和基本类型,标准库类型,表达式,语句,函数,标准IO库)
- 【OpenCV学习笔记】【函数学习】四(origin+imageData+cvcopy()函数+CvMemStorage 类型+CvPoint类型)
- Objective-C学习笔记(二十一)——函数的返回值与参数类型
- c++学习笔记:void*变量,在函数内必须要明确变量类型
- (1) Mysql ---- ABC 数据库基本操作、数据类型和运算符、函数 《MYSQL 5.5从零开始学》笔记
- Libevent源码分析-----通用类型和函数
- 标C编程笔记day05 函数声明、文件读写、联合类型、枚举类型
- C++ Primer学习笔记——$14 操作符重载、函数对象及类类型转换
- effective C++笔记之条款24、25:在函数重载和设定参数缺省值间慎重选择、避免指针和数字类型重载