时间(LINUX)


时间获取

秒级:

获取从1970-01-01 00:00:00以来的相隔秒数

#include <time.h> 
time_t time(time_t *tloc);

参数:
tloc:设为NULL就行了

返回值:
成功:秒数
失败:-1

可把time()得到的秒数变成一个struct tm结构体所表示的时间,结构体时间对应的是本地时间
struct tm *localtime_r(const time_t *timep, struct tm *result);

参数:
timep:需要进行转换的时间变量指针,可通过time()获取得到。
result:转换后用于存储信息的结构体指针

返回值:
成功:和参数result指针一样;
失败:NULL

struct tm
{ 
	int tm_sec; /* 秒(0-60) */ 
	int tm_min; /* 分(0-59) */ 
	int tm_hour; /* 时(0-23) */ 
	int tm_mday; /* 日(1-31) */ 
	int tm_mon; /* 月(0-11) */
	int tm_year; /* 年(这个值表示的是自1900年到现在经过的年数) */ 
	int tm_wday; /* 星期(0-6, 星期日Sunday = 0、星期一=1…) */ 
	int tm_yday; /* 一年里的第几天(0-365, 1 Jan = 0) */ 
	int tm_isdst; /* 夏令时 */ 
};

使用方法:
struct tm t; 
time_t sec = time(NULL); 
if (-1 == sec) 
{ 
	perror("time error"); 
	exit(-1); 
} 

localtime_r(&sec, &t);

定时器

信号定时器

#include <unistd.h> 

设置信号定时器。当定时时间到,内核会向进程发送SIGALRM信号
unsigned int alarm(unsigned int seconds);

参数:
	seconds:定时时间,以秒为单位;如果等于0,则表示取消之前设置的alarm闹钟

返回值:
	调用alarm()时,之前已设置有alarm闹钟并还没有超时,则之前闹钟的剩余值为返回值
	并且之前设置的闹钟使劲按被新的替代

	返回0则代表正常情况

Ps:
	alarm闹钟不能循环触发,只能触发一次
	要实现循环触发,可以在SIGALRM信号处理函数中再次调用alarm()函数设置定时器
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值