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...