在C++中,timeval
结构体用于表示时间值,包括秒和微秒
#include <iostream>
#include <sys/time.h>
int main() {
// 创建两个timeval结构体实例
struct timeval t1, t2;
// 获取当前时间(t1)和另一个时间点(t2)
gettimeofday(&t1, NULL);
// 假设t2是在某个事件发生后获取的
gettimeofday(&t2, NULL);
// 计算时间差(以微秒为单位)
long usec_diff = t2.tv_usec - t1.tv_usec;
long sec_diff = t2.tv_sec - t1.tv_sec;
// 如果微秒差值为负数,则从秒差值中减去1,并将微秒差值加上1000000
if (usec_diff < 0) {
sec_diff -= 1;
usec_diff += 1000000;
}
// 输出时间差(以秒和微秒为单位)
std::cout << "Time difference: " << sec_diff << " seconds, " << usec_diff << " microseconds" << std::endl;
return 0;
}
这个示例首先获取当前时间(t1
)和另一个时间点(t2
),然后计算它们之间的时间差(以微秒为单位)。如果微秒差值为负数,代码会将其调整为正数。最后,代码输出时间差(以秒和微秒为单位)。