計時器-sys/time.h

計時器

進程可通過三種方式計時

ITIMER_REAL: 真實時間(使用者實際經歷的時間) ITIMER_VIRTUAL:程序在用戶態實際執行的時間
ITIMER_PROF:由該進程進入的內核處理所用時間+VIR

使用<sys/time.h>
可方便地完成上述三種時間記錄
包含結構體itimerval和函數setitimer()

結構體itimerval包含兩項設置
	a:剩餘時間
		對應成員:struct  timerval it_value
	b:重裝時間(單片機中的加法計數器重裝)
		對應成員:struct  timerval it_interval
這兩項設置都是以 (秒+微秒)的數值組合 設置時間
	就是說,結構體timerval包含兩項成員
		a:   tv_sec
		b:tv_usec
		都用long類型數值來填充即可

  • 具體寫成:
struct itimerval S;//聲明一個itimerval結構S

/*設置第一次倒計時1.5s = 1s+0.5s*/ 
S.it_val.tv_sec = 1// 1s
S.it_val.tv_interval = 50000// 50000us = 0.5s

/*設置重複(第一次之後自動開始的倒計時)
			倒計時1.5s = 1s+0.5s*/ 
S.it_interval.tv_sec = 1// 1s
S.it_interval.tv_interval = 50000// 50000us = 0.5s

  • 完成結構體寫入後,調用函數setitimer()以S的設置啓動計時器
Setitimer(ITIMER_REAL,&S,NULL;
  • 解釋一下三個位置的參數:
    1:計時器類型(見開頭)
    2:計時器設置(結構體指針)
    3:需要用S的設置替換的結構體的指針,一般沒有需要就用NULL
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章