Board logo

标题: C语言如何获得精确到 毫秒 的时间 [打印本页]

作者: look_w    时间: 2017-10-24 17:56     标题: C语言如何获得精确到 毫秒 的时间

时间,在linux系统可以使用time命令来计算程序运行运行所消耗的时间,能精确到毫秒,如果要精确到代码块或某个操作运行时所消耗的时间,time命令就不给力了。如果对时间的精度要求不高的话,可以调用标准C的接口time来得到开始和结束的时间,再调用difftime接口来计算时间差,精度是秒,代码如下所示:
下载:


如果要让程序休眠3秒,Windows使用Sleep(3000),Linux使用sleep(3),即Windows的Sleep接口的参数的单位是毫秒,Linux的sleep接口的参数的单位是秒。


如果需要精确到毫秒,以上程序就发挥不了作用,如果要达到这要求就很简单了,代码如下所示:

通过Google找了一些资料后,发现里没有标准的接口可以获得精确到毫秒的时间,都会调用到与关的API,下面会分别介绍在Linux和Windows系统下的多种实现方法,希望对大家有帮助。
Linux系统使用gettimeofday接口:

gettimeofday能得到微秒数,比毫秒还要更精确。
使用ftime接口:


这种方法没给出计算时间差的实现,只给出如何用GetSystemTime调用得到当前时间,计算时间差比较简单,根据年、月、日、时、分秒和毫秒计算出一个整数,再将两整数相减即可。
后记以上是通过Google找到一些用C语言获得精确到




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0