1. 程式人生 > >linux時間間隔計算

linux時間間隔計算

前言

專案中需要達到一定的時間要求指標 所以需要將時間間隔計算一下

函式

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();

end-begin結果
真正的時間間隔是它除以CLOCKS_PER_SEC來得出時間秒級
但是從圖可知 在linux系統中其受cpu影響太多 對於時間間隔的計算並不準確
而且從官方的man手冊可知 它推薦下面的函式計算時間間隔
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