LINUX中示例:
#include <stdio.h> // for printf()#include <sys/time.h> // for gettimeofday()
#include <unistd.h> // for sleep()
int main()
{
struct timeval start, end
gettimeofday( &start, NULL )
printf("start : %d.%d\n", start.tv_sec, start.tv_usec)
sleep(1)
gettimeofday( &end, NULL )
printf("end : %d.%d\n", end.tv_sec, end.tv_usec)
return 0
}
运行结果:
start : 1418118324.633128
end : 1418118325.634616
C语言获取当前系统时间的几种方式C语言获取系统时间的几种方式
C语言中如何获取时间?精度如何?
1 使用time_t time( time_t * timer ) 精确到秒
2 使用clock_t clock() 得到的是CPU时间精确到1/CLOCKS_PER_SEC秒
3 计算时间差使用double difftime( time_t timer1, time_t timer0 )
4 使用DWORD GetTickCount() 精确到毫秒
5 如果使用MFC的CTime类,可以用CTime::GetCurrentTime() 精确到秒
6 要获取高精度时间,可以使用
BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency)
获取系统的计数器的频率
BOOL QueryPerformanceCounter(LARGE_INTEGER
*lpPerformanceCount)
获取计数器的值
然后用两次计数器的差除以Frequency就得到时间。
7 Multimedia Timer Functions
The following functions are used with multimedia timers.
timeBeginPeriod/timeEndPeriod/timeGetDevCaps/timeGetSystemTime
可以用_nop_( )函数来实现微秒级的延时。
_nop_() // 直接当成一条语句使用,产生一条NOP指令NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。
注:使用该函数时,需要将头文件#include<intrins.h>包含进源文件中。