linux使用者態定時器的使用 19

2021-09-07 04:50:03 字數 991 閱讀 1579

linux作業系統為每乙個程序提供了3個內部計時器。

itimer_real;itimer_virtual;itimer_prof.

itimer_real:給定乙個指定的時間間隔,按照實際的時間來減少這個計數,當時間間隔為0的時候發出sigalrm訊號。

itimer_virtual:給定乙個時間間隔,當程序執行的時候才減少計數,時間間隔為0的時候發出sigvtalrm訊號。

itimer_prof:給定乙個時間間隔,當程序執行或者是系統為程序排程的時候,減少計數,時間到了,發出sigprof訊號,這個和timer_virtual聯合,常用來計算系統核心時間和使用者時間。

看一下getitimer的資料手冊

getitimer, setitimer - get or set value of an interval timer

#include

int getitimer(int which, struct itimerval *value);

int setitimer(int which, char struct itimerval *value, struct itimerval *ovalue);

itimer_real;itimer_virtual;itimer_prof.就是三個定時器,在使用的時候,當其中的任何乙個時間到了,都會給程序傳送乙個訊號,然後定時器重新被裝填,重新開始定時動作。

它們對應的訊號

itimer_real    ---- sigalrm

itimer_virtual ---- sigvtalrm

itimer_prof    ---- sigprof

函式中的which就是選擇這三個定時器中的乙個。

下面是描述時間結構體value的

struct itimerval

void init_sigaction(void

)

void

init_time()

intmain()

Linux定時器的使用

使用定時器的目的無非是為了週期性的執行某一任務,或者是到了乙個指定時間去執行某乙個任務。要達到這一目的,一般有兩個常見的比較有效的方法。乙個是用linux內部的三個定時器,另乙個是用sleep,usleep函式讓程序睡眠一段時間,使用alarm定時發出乙個訊號,還有那就是用gettimeofday,...

linux定時器的使用

使用定時器的目的無非是為了週期性的執行某一任務,或者是到了乙個指定時間去執行某乙個任務。要達到這一目的,一般有兩個常見的比較有效的方法。一 個是用linux內部的三個定時器,另乙個是用sleep,usleep函式讓程序睡眠一段時間,其實,還有乙個方法,那就是用gettimeofday,difftim...

linux定時器的使用

使用定時器的目的無非是為了週期性的執行某一任務,或者是到了乙個指定時間去執行某乙個任務。要達到這一目的,一般有兩個常見的比較有效的方法。乙個是用linux內部的三個定時器,另乙個是用sleep,usleep函式讓程序睡眠一段時間,其實,還有乙個方法,那就是用gettimeofday,difftime...