日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux定时器错误使用,linux下定时器的使用

發布時間:2024/7/19 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux定时器错误使用,linux下定时器的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

注意:setitimer()一個進程中只能有一個,下一個會覆蓋前一個的定時。

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 it_interval;

struct timeval it_value;

};

struct timeval

{

long tv_sec;

long tv_usec;

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

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

返回說明:

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

EFAULT:value或ovalue是不有效的指針

EINVAL:其值不是ITIMER_REAL,ITIMER_VIRTUAL 或 ITIMER_PROF之一。

舉例說明:

#include#include#include#include#include#includevoidPrintMsg(intNum)

{

printf("%s/n","Hello?World");return;

}intmain(intargc,char*argv[])

{

signal(SIGALRM,?PrintMsg);structitimerval?tick;

tick.it_value.tv_sec=10;//十秒鐘后將啟動定時器tick.it_value.tv_usec=0;

tick.it_interval.tv_sec=1;//定時器啟動后,每隔1秒將執行相應的函數tick.it_interval.tv_usec=0;//setitimer將觸發SIGALRM信號intret=setitimer(ITIMER_REAL,&tick,?NULL);if(?ret!=0)

{

printf("Set?timer?error.?%s?/n",?strerror(errno)?);return-1;

}

printf("Wait!/n");

getchar();return0;

}

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的linux定时器错误使用,linux下定时器的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。