linux下定時器的使用

2021-05-23 18:24:47 字數 1423 閱讀 6280

linux下定時器的使用主要用到兩個函式:setitimer()和getitimer();

linux系統給每個程序提供了3個定時器,每個定時器在各自不同的域裡面計數,當任何乙個timer計數結束了,系統就發乙個訊號(signal)給該程序,同時計數器重置。

以下是支援的三種計數器形式:

1、itimer_real         在real  time中計數器減1,然後等計數往比後傳送sigalrm訊號。

2、itimer_virtual    當程序在執行的過程中計數,然後當計數完畢後傳送sigvtalrm訊號給該程序。

3、itimer_prof         在該程序被執行和系統在代表該程序執行的時間都進行計數。

getitimer()/setitimer()功能描述:

獲取或設定間歇計時器的值。系統為程序提供三種型別的計時器,每一類以不同的時間域遞減其值。當計時器超時,訊號被傳送到程序,之後計時器重啟動。

用法:#include

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

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

引數:which:間歇計時器型別,有三種選擇

itimer_real //數值為0,計時器的值實時遞減,傳送的訊號是sigalrm。

itimer_virtual //數值為1,程序執行時遞減計時器的值,傳送的訊號是sigvtalrm。

itimer_prof //數值為2,程序和系統執行時都遞減計時器的值,傳送的訊號是sigprof。

value,ovalue:時間引數,原型如下

struct itimerval

;struct timeval

; getitimer()用計時器的當前值填寫value指向的結構體。

setitimer()將value指向的結構體設為計時器的當前值,如果ovalue不是null,將返回計時器原有值。

返回說明:

成功執行時,返回0。失敗返回-1,errno被設為以下的某個值

efault:value或ovalue是不有效的指標

einval:其值不是itimer_real,itimer_virtual 或 itimer_prof之一。

舉例說明:

#include 

#include 

#include 

#include 

#include 

#include 

void printmsg(int num)

int main(int argc, char* argv)

printf("wait!/n");

getchar();

return 0;

}

Linux下定時器的使用

2019獨角獸企業重金招聘python工程師標準 linux下應用層定時器本來有好幾種,大夥可以去搜尋其他帖子部落格,這裡我主要描述我在使用setitimer時候遇到的問題,話不多說,直接上 吧 lock timmer test.cpp include include include include...

linux 下定時器 crontab

1.直接用crontab命令編輯 cron服務提供crontab命令來設定cron服務的,以下是這個命令的一些引數與說明 crontab u 設定某個使用者的cron服務,一般root使用者在執行這個命令的時候需要此引數 crontab l 列出某個使用者cron服務的詳細內容 crontab r ...

linux下定時器實現

linux定時器 是指在每隔一段時間後就會進行一次相關操作,具有計時性的。核心操作是如下方法 int setitimer int which,const struct itimerval restrict value,struct itimerval restrict ovalue 函式返回的是va...