C语言 gettimeofday()
函数用于获取当前时间戳的秒和微秒。它是C语言的日期时间函数之一,位于标准库<time.h>
中。
还可以通过time()函数获取时间戳,只是gettimeofday()函数可以获取到微妙级的时间戳,相对来说更为精准。
语法
语法如下:int gettimeofday (struct timeval * tv, struct timezone * tz);
参数
- tv:timeval 结构体。
- tz:timezone结构体
timeval
结构体:
struct timeval
{
long int tv_sec; // 秒数
long int tv_usec; // 微秒数
}
timezone
结构体:
struct timezone
{
int tz_minuteswest;/*格林威治时间往西方的时差*/
int tz_dsttime; /*DST 时间的修正方式*/
}
tz_dstime值如下:- DST_NONE /*不使用*/
- DST_USA /*美国*/
- DST_AUST /*澳洲*/
- DST_WET /*西欧*/
- DST_MET /*中欧*/
- DST_EET /*东欧*/
- DST_CAN /*加拿大*/
- DST_GB /*大不列颠*/
- DST_RUM /*罗马尼亚*/
- DST_TUR /*土耳其*/
- DST_AUSTALT /*澳洲(1986年以后)*/
功能
获取当前时间戳的秒和微妙,给结构体 timeval
赋值,我们可以从该结构体中获取秒和微妙。
返回值
成功则返回0,失败返回-1,错误代码存于errno。
程序示例
介绍一个例子,了解C语言 gettimeofday()
函数的使用方法。
#include <stdio.h>
#include <sys/time.h>
#include <time.h>
int main()
{
struct timeval tv;
gettimeofday(&tv, NULL);//使用gettimeofday给tv赋值
printf("时间戳秒:%ld\n时间戳微秒:%ld", tv.tv_sec, tv.tv_usec);
return 0;
}
程序运行结果:
时间戳秒:1685708769
时间戳微秒:93980
注意:上面的代码要在linux系统中运行。
时间戳微秒:93980