struct timespec定義
頭檔案:
#include <time.h>
結構體說明:
struct timespec{
__time_t tv_sec; /*seconds 秒*/
long int tv_nsec; /*nanoseconds 納秒*/
}
更加清晰明了的寫法,當然以上的寫法也沒有錯:
struct timespec
{
time_t tv_sec; /*second*/
long tv_nsec;/*nanosecond*/
}
舉一個簡單的小例子,就叫spec.c:
#include <time.h>
#include <memory.h>
#include <stdio.h>
int main()
{
struct timespec time;
memset(&time, 0, sizeof(time));
clock_gettime(CLOCK_REALTIME, &time);
printf("%d----->%d\n", time.tv_sec, time.tv_nsec);
return 0;
}
自己編譯即可知道結果,但又兩點說明:
1、這裡的秒和納秒數是自1970年1月1號00:00:00開始計時,到現在所經歷的時間。
2、在編譯的時候,如果gcc spec.c -o spec沒有通過的話,加上-lrt在進行編譯,表示此前沒有載入該庫。
與struct timeval 唯一的不同,將結構體內成員微秒變換成納秒,提高了精確度。其次,struct timeval 還提供了諸多的函式,諸如:time(),gettimeofday(),localtime(),gmtime(),mktime(),asctime(),ctime()和strftime()的時間函式,同時又大量的格式轉換,滿足我們所需要的格式。