struct timeval
是一个在 sys/time.h
头文件中定义的结构体,它通常用于在C或C++程序中获取或操作时间值。在大多数UNIX或类UNIX操作系统中,struct timeval
可以精确地表示时间的秒数和微秒数。
以下是一个简单的示例程序,使用 struct timeval
获取当前时间的秒数和微秒数:
#include <iostream>
#include <sys/time.h>
using namespace std;
int main() {
struct timeval tv;
// 获取当前时间
gettimeofday(&tv, NULL);
// 打印时间的秒数和微秒数
cout << "当前时间(秒):" << tv.tv_sec << endl;
cout << "当前时间(微秒):" << tv.tv_usec << endl;
return 0;
}
在这个示例中,首先声明一个 struct timeval
结构体变量 tv
,然后调用 gettimeofday
函数获取当前时间。gettimeofday
函数需要传递一个指向 struct timeval
结构体的指针,以及一个指向 struct timezone
结构体的指针(通常设置为 NULL
,表示忽略时区参数)。
在获取到时间之后,可以通过 tv.tv_sec
成员变量获取秒数,通过 tv.tv_usec
成员变量获取微秒数。请注意,tv.tv_usec
表示的是秒数之后的微秒数,取值范围为 0 到 999999。
输出示例:
当前时间(秒):1647884121
当前时间(微秒):778105
请注意,在使用 struct timeval
时需要包含 sys/time.h
头文件。此外,如果需要更高精度的时间值,可以使用 struct timespec
结构体,它可以表示纳秒级别的时间。