1 背景
在Linux编程的过程中,有时候需要用到系统时间,例如根据当前的时间戳产生文件名。为此,本文对Linux中关于时间的一些函数和类型进行简单的总结。
2 time_t
参考资料[1]指出,time_t其实是一个长整形的别名,它记录的是从1970年1月1日0时0分0秒到当前所经历的时间。
3 time()
#include <time.h> time_t time(time_t *t);
参考资料[2]指出,此函数主要用于获取系统当前时间(从1970年1月1日0时0分到当前所经历的时间)。
4 localtime()
#include <time.h> struct tm *localtime(const time_t *timep);
由于time_t类型的时间不便于人们阅读,因此提供了将time_t转换成便于人们阅读的格式。localtime()就是这类函数之一,详细用例见参考资料[2]。
5 gettimeofday()
#include <sys/time.h> int gettimeofday(struct timeval *tv, struct timezone *tz);time()只能获得的时间精度为秒,若想获得更高精度的时间,可以使用gettimeofday(),可以达到微秒级。根据参考资料[5]的说明,getimeofday()所获取的时间也是从1970年1月1日0时0分到当前的时间。
参考资料
[1]C语言中time_t数据类型详细介绍
[2]linux下获取时间的函数
[3]linux 中 timeval结构体
[4]Linux/Unix time时间戳的处理转换函数
[5]gettimeofday_百度百科