libevent笔记-辅助函数/类型

//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);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值