linux下獲得微妙和毫秒

2021-09-30 03:34:36 字數 770 閱讀 6016

linux下還有個系統庫函式可以精確到微秒級  

#include  

函式:  

gettimeofday(struct   time_val   *tv,   struct   time_zone   *tz);  

兩個結構體引數,tv得到的是時間的資訊,tz得到的是時區資訊  

我們所需要的時間主要從tv中獲取  

struct   time_val有兩個資料,  

u_int32   tv_sec;  

u_int32   tv_usec;  

u_int32相當於unsigned   long  

tv_sec是乙個秒  

tv_usec是乙個微秒  

得到的時間相當於    

tv_sec.tv_usec(秒)tv_usec精確到6位數,即微秒級  

所以在執行第m行後時呼叫gettimeofday()得到   tv1;  

執行第m+2行前呼叫   gettimeofday()得到tv2;  

然後兩次相減就是時間差的  

double   t1   =   tv1.tv_sec   +   tv1.tv_usec   /   1000000.0  

double   t2   =   tv2.tv_sec   +   tv2.tv_usec   /   1000000.0  

兩者相差的時間就是   t2-t1   (秒為單位,後面有6位小數)  

參考文章會有更大收穫

在Linux下獲得毫秒級的精確時間

編寫完程式,都要測試程式的效能以便進一步優化。表徵程式效能的乙個主要的指標就是程式的執行時間,對於有些程式,執行的時間很短,也許就幾秒,或許就幾毫秒,這就需要精確地測量時間的方法,在linux中已經準備好了這些工具,其中最簡潔的乙個方法就是採用gettimeofday函式可以達到這個目的 其中t s...

LINUX下取系統時間 毫秒 和計算程式執行時間

include include include struct timeval tvpre,tvafter gettimeofday tvpre,null sleep 3 這裡是linux程式設計,這個sleep是秒為單位的 gettimeofday tvafter,null ast log log ...

STM8L1xx利用定時器實現毫秒和微妙延時

採用微控制器的定時計數器進行毫秒和微妙級延時,精度較準。檢測溢位時產生的標誌位來判斷延時到達。下面以stm8l101晶元為例及配合 說明。一 實現原理 1 初始化timer2時鐘源 附上相應 void tim2init void 開啟外設時鐘源 選擇向上計數模式和開啟自動重載入功能 填裝計數器的初始...