linux應用程式中的定時器

2021-06-29 10:46:34 字數 991 閱讀 1761

**:

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()   

int main()    

linux 應用程式中select定時器

1.在應用程式中使用select實現1ms的定時器 通過select實現毫秒級的延時,如下 ms timer int mssleep long ms 建立乙個執行緒timer,迴圈處理延時,實現迴圈定時器 void timer void arg 2.在程式其他地方呼叫,實現500ms定時處理,發現 ...

C 桌面應用程式 定時器

今天,開始學習c 主要是依賴c 語言開發應用程式,特別是串列埠助手,以此來實現對微控制器的串列埠資料讀取。以下是具體的實現 using system using system.collections.generic using system.componentmodel using system.d...

LINUX應用開發 定時器

在linux應用程式開發的過程中,經常會用到定時器來週期性的做某件事情,雖然說linux是乙個非嚴格實時作業系統,但對於時間精度要求不是特別嚴格的系統而言,linux的定時器還是有它的用處的,下面就簡單介紹下linux定時器的用法。a 在main函式中進行定時器初始化 void timerinit ...