[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的錯誤訊息喔!

留言

這個網誌中的熱門文章

[Security] wpa_supplicant setup

[Wordpress] 登出時出現 404 Error

[OpenNMS Note] OpenNMS SNMP的誕生