1、gettimeofday函数
该函数的头文件在/usr/include/sys/time.h头文件中。
函数原型:int gettimeofday(struct timeval*tv, struct timezone *tz);
用到两个结构体: timeval 和 timezone
这两个结构体定义在/usr/include/linux/time.h头文件中。
一秒=1000000微秒
函数作用:会把得到从1970年1月1日0时0分0秒到现在的秒数返回到第一个参数指向的结构体中,第二个参数是关于时区,如果不考虑填入NULL。
函数成功返回0,否则返回-1,错误代码存于errno。
可以利用该函数来计算一个程序的运行时间,只需在程序前后调用该函数,并且后来的函数时间减去开始的函数时间就可以。注意单位的转变。
2、time()函数
time函数声明:time_t time(time_t *t)
头文件:<time.h>
由声明可知,这里有一个特殊类型 time_t类型 ;相当于 long int 类型。函数参数为time_t类型变量的地址。
eg:
time函数接收time_t类型的变量地址为参数,计算返回1970年1月1日00:00:00 到现在的秒数,并存储在变量中。
特殊:time(NULL);该函数会返回从1970到现在的秒数,但不保存。
3、localtime函数
函数声明:struct tm *localtime(const time_t *timer)
由此可见:该函数接收一个time_t类型的变量地址。
该函数返回指向 tm 结构的指针,该结构带有被填充的时间信息;
tm 结构体:
该函数作用是返回指向tm结构的指针,并且按输入的秒数填写结构。
asctime函数:
该函数接收一个指向tm的指针,并且把tm结构体的内容转换格式,返回一个指向字符串的指针。
strftime函数
函数声明:size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)
该函数有四个参数,
- str -- 这是指向目标数组的指针,用来复制产生的 C 字符串。
- maxsize -- 这是被复制到 str 的最大字符数。
- format -- 这是 C 字符串,包含了普通字符和特殊格式说明符的任何组合。这些格式说明符由函数替换为表示 tm 中所指定时间的相对应值
- timeptr -- 这是由localtime函数返回的指向tm结构体的指针。
该函数的作用是,把timeptr指向的结构体内容,根据format格式转换,并且存储在str中。