網上很多人寫到,timeval結構解釋錯誤
*******************************************************************
問題如下:
在debian linux的man頁中對gettimeofday函數的說明中,有這樣一個說明:
DESCRIPTION
The functions gettimeofday and settimeofday can get and set the time as
well as a timezone. The tv argument is a timeval struct, as specified
in <sys/time.h>:
struct timeval {
time_t tv_sec; /* seconds */
suseconds_t tv_usec; /* microseconds */
};
其中對tv_usec的說明為時間的毫秒部分。 而在實際中,該函數以及Linux內核返回的timeval
類型的時間值,tv_usec代表的是微秒精度(10的-6次方秒)。
********************************************************************
我很無語,只能說寫這話的人英語很水,microsecond 是微秒的意思,簡寫為usec
毫秒的英語單詞是millisecond,簡寫為msec
#include <stdio.h>
#include <sys/time.h>
#include <time.h>
int main(int argc,char * argv[])
{
struct timeval tv;
while(1)
{
gettimeofday(&tv,NULL);
printf("time %u:%u\n",tv.tv_sec,tv.tv_usec);
sleep(2);
}
return 0;
}