C语言实现linux系统获取高精度时间差(毫秒)

Posted Hero_HL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言实现linux系统获取高精度时间差(毫秒)相关的知识,希望对你有一定的参考价值。

简介

通过函数gettimeofday获取当前时间


代码

#include <stdio.h>
#include <sys/time.h>
#include <unistd.h>
int main()
{
	double dbCostms;
	struct timeval tvStart, tvEnd;

	gettimeofday(&tvStart, NULL);
	usleep(30000);
	gettimeofday(&tvEnd, NULL);
	dbCostms = (double)(1000 * (tvEnd.tv_sec - tvStart.tv_sec) + ((tvEnd.tv_usec - tvStart.tv_usec) / 1000.0));
	printf("cost %-0.2f ms\\n", dbCostms);

	gettimeofday(&tvStart, NULL);
	sleep(3);
	gettimeofday(&tvEnd, NULL);
	dbCostms = (double)(1000 * (tvEnd.tv_sec - tvStart.tv_sec) + ((tvEnd.tv_usec - tvStart.tv_usec) / 1000.0));
	printf("cost %-0.2f ms\\n", dbCostms);

	gettimeofday(&tvStart, NULL);
	sleep(20);
	gettimeofday(&tvEnd, NULL);
	dbCostms = (double)(1000 * (tvEnd.tv_sec - tvStart.tv_sec) + ((tvEnd.tv_usec - tvStart.tv_usec) / 1000.0));
	printf("cost %-0.2f ms\\n", dbCostms);

	gettimeofday(&tvStart, NULL);
	usleep(2688);
	gettimeofday(&tvEnd, NULL);
	dbCostms = (double)(1000 * (tvEnd.tv_sec - tvStart.tv_sec) + ((tvEnd.tv_usec - tvStart.tv_usec) / 1000.0));
	printf("cost %-0.2f ms\\n", dbCostms);

	getchar();
	return 0;
}

测试结果

以上是关于C语言实现linux系统获取高精度时间差(毫秒)的主要内容,如果未能解决你的问题,请参考以下文章

如何将GetTickCount得到的DWORD转化为时间,毫秒级

C中函数的毫秒精度计时 - 跨平台

如何在Linux中从C打印毫秒和纳秒精度的时间差?

具有毫秒精度的 Linux/OSX 时钟分辨率?

C语言linux gettimeofday()函数和time()函数的区别(后者只能得到秒级系统时间,前者能得到毫秒甚至微秒级系统时间)

请问在C语言里怎么获取当前时间和日期(精确到毫秒)?