linux c setitimer用法說明

2021-09-01 09:28:39 字數 1166 閱讀 5158

使用時需要引入的標頭檔案:

#include
int setitimer(int which, const struct itimerval *new_value,

struct itimerval *old_value);

其中which引數表示型別,可選的值有:

itimer_real:以系統真實的時間來計算,它送出sigalrm訊號。

itimer_virtual:以該程序在使用者態下花費的時間來計算,它送出sigvtalrm訊號。

itimer_prof:以該程序在使用者態下和核心態下所費的時間來計算,它送出sigprof訊號。

緊接著的new_value和old_value均為itimerval結構體,先看一下itimerval結構體定義:

struct itimerval ;

struct timeval ;

itimeval又是由兩個timeval結構體組成,timeval包含tv_sec和tv_usec兩部分,其中tv_se為秒,tv_usec為微秒(即1/1000000秒)

其中的new_value引數用來對計時器進行設定,it_interval為計時間隔,it_value為延時時長,下面例子中表示的是在setitimer方法呼叫成功後,延時1微秒便觸發一次sigalrm訊號,以後每隔200毫秒觸發一次sigalrm訊號。

settimer工作機制是,先對it_value倒計時,當it_value為零時觸發訊號,然後重置為it_interval,繼續對it_value倒計時,一直這樣迴圈下去。

基於此機制,setitimer既可以用來延時執行,也可定時執行。

假如it_value為0是不會觸發訊號的,所以要能觸發訊號,it_value得大於0;如果it_interval為零,只會延時,不會定時(也就是說只會觸發一次訊號)。

old_value引數,通常用不上,設定為null,它是用來儲存上一次setitimer呼叫時設定的new_value值。

以下是乙個簡單的使用例子:

#include #include #include void signalhandler(int signo)} 

int main(int argc, char *argv)

linux c setitimer用法說明

在linux c程式設計中,setitimer是乙個比較常用的函式,可用來實現延時和定時的功能。使用時需要引入的標頭檔案 cpp view plain copy include setitimer函式原型 cpp view plain copy intsetitimer intwhich,const...

boost bind function用法說明

目錄 1 標頭檔案 bind 函式 include bind.hpp function 使用標頭檔案 include 如果寫程式時出錯則在 function 及bind 前面加上限定 boost 2 功能 bind 繫結乙個函式及其引數.function 是類和模板的組合,它定義的物件可以指向乙個函...

continue break exit用法說明

1,continue用法 2,break用法 3,sys.exit用法 1,continue用法 跳出本次迴圈,繼續下次迴圈 for i in xrange 10 if i 8 continue print i 當程式執行到i 8的時候,發現i此時等於這個時候,在執行continue後,就返回到fo...