//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笔记-辅助函数/类型
最新推荐文章于 2022-12-12 15:34:05 发布