[Linux上clock_gettime毫秒的計算]
整理一下在Linux上的時間計算方式,據原先常用的gettimeofday(tv,NULL);的方法
好像沒辦法精確的抓到毫秒,所以我再google了另一個方法...紀錄下來:
#include<stdio.h>
#include<time.h>
#define BILLION 1000000000L;
int main(void){
struct timespec start,end;
clock_gettime(CLOCK_REALTIME,&start);//取得Start的時間
int ret;
printf("In sleep ...\n");
usleep(150000);
printf("out of sleep ... \n");
clock_gettime(CLOCK_REALTIME,&end);//取得End的時間
double time = ( end.tv_sec - start.tv_sec)
+ (double)(end.tv_nsec-start.tv_nsec)/(double)BILLION;//計算開始到結束花費的時間
printf("run time = %lf\n",time);
//顯示出來的時間會是" 秒.微秒毫秒..."
}
記得在Compiler後面加上-lrt,否則會在Link時出現找不到clock_gettime的錯誤訊息喔!
記得在Compiler後面加上-lrt,否則會在Link時出現找不到clock_gettime的錯誤訊息喔!
留言
張貼留言