linux時間間隔計算
阿新 • • 發佈:2018-12-13
前言
專案中需要達到一定的時間要求指標 所以需要將時間間隔計算一下
函式
1、time()
#include <time.h>
time_t time(time_t *t);
主要的用法是兩種
time_t begin = time(NULL)
或者
time_t end;
time(&end)
返回當前時間到 Epoch, 1970-01-01 00:00:00 +0000 (UTC)的秒數
錯誤時返回-1
精度:秒級
2、clock()
#include <time.h>
clock_t clock(void );
clock_t begin = clock()
usleep(10000);
clock_t end = clock();
真正的時間間隔是它除以CLOCKS_PER_SEC來得出時間秒級
但是從圖可知 在linux系統中其受cpu影響太多 對於時間間隔的計算並不準確
而且從官方的man手冊可知 它推薦下面的函式計算時間間隔
3、clock_gettime
#include <time.h>
int clock_gettime(clockid_t clk_id, struct timespec *tp);
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
一般情況下 clk_id設定成CLOCK_REALTIME就足以應付了
這種情況最高精度是納秒級 但實際情況中毫秒就足夠了
tv_sec*1000+tv_nsec/1000000