青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

Linux下的定時器:alarm()與setitimer()

Posted on 2008-08-27 09:12 Prayer 閱讀(398) 評論(0)  編輯 收藏 引用 所屬分類: LINUX/UNIX/AIX

 Linux下的定時器有兩種,以下分別介紹:
 
  1、alarm
 
  如果不要求很精確的話,用alarm()和signal()就夠了
 
  unsigned int alarm(unsigned int seconds)
 
  函數說明: alarm()用來設置信號SIGALRM在經過參數seconds指定的秒數后傳送給目前的進程。如果參數seconds為0,則之前設置的鬧鐘會被取消,并將剩下的時間返回。
 
  返回值: 返回之前鬧鐘的剩余秒數,如果之前未設鬧鐘則返回0.
 
  alarm()執行后,進程將繼續執行,在后期(alarm以后)的執行過程中將會在seconds秒后收到信號SIGALRM并執行其處理函數。
 
  
#include
#include
#include
void sigalrm_fn(int sig)
{
printf("alarm!\n");
alarm(2);
return;
}
int main(void)
{
signal(SIGALRM, sigalrm_fn);
alarm(1);
while(1) pause();
}

 

 
  2、setitimer()
 
  int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue));
 
  setitimer()比alarm功能強大,支持3種類型的定時器:
 
  ITIMER_REAL : 以系統真實的時間來計算,它送出SIGALRM信號。
 
  ITIMER_VIRTUAL : -以該進程在用戶態下花費的時間來計算,它送出SIGVTALRM信號。
 
  ITIMER_PROF : 以該進程在用戶態下和內核態下所費的時間來計算,它送出SIGPROF信號。
 
  setitimer()第一個參數which指定定時器類型(上面三種之一);第二個參數是結構itimerval的一個實例;第三個參數可不做處理。
 
  setitimer()調用成功返回0,否則返回-1.
 
  下面是關于setitimer調用的一個簡單示范,在該例子中,每隔一秒發出一個SIGALRM,每隔0.5秒發出一個SIGVTALRM信號:
 
  
#include
#include
#include
#include
#include
#include
int sec;
void sigroutine(int signo){
switch (signo){
case SIGALRM:
printf("Catch a signal -- SIGALRM \n");
signal(SIGALRM, sigroutine);
break;
case SIGVTALRM:
printf("Catch a signal -- SIGVTALRM \n");
signal(SIGVTALRM, sigroutine);
break;
}
return;
}
int main()
{
struct itimerval value, ovalue, value2; //(1)
sec = 5;
printf("process id is %d\n", getpid());
signal(SIGALRM, sigroutine);
signal(SIGVTALRM, sigroutine);
value.it_value.tv_sec = 1;
value.it_value.tv_usec = 0;
value.it_interval.tv_sec = 1;
value.it_interval.tv_usec = 0;
setitimer(ITIMER_REAL, &value, &ovalue); //(2)
value2.it_value.tv_sec = 0;
value2.it_value.tv_usec = 500000;
value2.it_interval.tv_sec = 0;
value2.it_interval.tv_usec = 500000;
setitimer(ITIMER_VIRTUAL, &value2, &ovalue);
for(;;)
;
}

 

 
  (1) struct itimerval
 
  
struct itimerval {
struct timeval it_interval; /* timer interval */
struct timeval it_value; /* current value */
};
itimerval: i --> interval
val --> value

 

 
  itimerval結構中的it_value是減少的時間,當這個值為0的時候就發出相應的信號了。 然后再將it_value設置為it_interval值。
 
  (2) setitimer()
 
  setitimer()為其所在進程設置一個定時器,如果itimerval.it_interval不為0(it_interval的兩個域都不為0),則該定時器將持續有效(每隔一段時間就會發送一個信號)
 
  注意:Linux信號機制基本上是從Unix系統中繼承過來的。早期Unix系統中的信號機制比較簡單和原始,后來在實踐中暴露出一些問題,因此,把那些建立在早期機制上的信號叫做"不可靠信號",信號值小于SIGRTMIN(SIGRTMIN=32,SIGRTMAX=63)的信號都是不可靠信號。這就是"不可靠信號"的來源。它的主要問題是:進程每次處理信號后,就將對信號的響應設置為默認動作。在某些情況下,將導致對信號的錯誤處理;因此,用戶如果不希望這樣的操作,那么就要在信號處理函數結尾再一次調用signal(),重新安裝該信號

 

 

 

 

 

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美国产一区二区三区激情无套| 可以免费看不卡的av网站| 欧美亚洲综合另类| 久久精品免费观看| 亚洲福利视频专区| 欧美日韩网址| 国语自产精品视频在线看抢先版结局 | 欧美国产一区二区在线观看 | 国产精品视频yy9099| 久久视频在线看| 欧美黄色一区| 欧美区在线播放| 欧美精品免费播放| 欧美日韩国产色站一区二区三区| 国产精品区一区| 亚洲日韩成人| 欧美亚洲一区二区在线| 欧美va天堂| 亚洲在线成人| 欧美r片在线| 亚洲国产精品va| 久久深夜福利| 亚洲一级二级| 国户精品久久久久久久久久久不卡 | 亚洲一区二区免费视频| 亚洲日本成人网| 久久综合九九| 亚洲与欧洲av电影| 欧美性做爰猛烈叫床潮| 99re热这里只有精品视频| 久久久综合香蕉尹人综合网| 亚洲一二三区视频在线观看| 久久影视精品| 在线精品视频在线观看高清| 久久免费国产精品1| 亚洲精品欧美一区二区三区| 久久综合九色九九| 国产一区二区三区在线观看免费| 欧美顶级大胆免费视频| 国产精品高清网站| 亚洲国产女人aaa毛片在线| 久久久久久一区| 欧美夫妇交换俱乐部在线观看| 国产综合色精品一区二区三区| 免费久久99精品国产| 久久岛国电影| 99精品视频免费全部在线| 日韩亚洲成人av在线| 国产视频精品网| 久久精品最新地址| 久久综合色影院| 欧美国产精品人人做人人爱| 99在线观看免费视频精品观看| 欧美一区二区三区久久精品| 国产亚洲精品久久久久动| 小处雏高清一区二区三区| 美女免费视频一区| 亚洲午夜视频| 国产精品一区二区三区四区五区| 欧美一区二区视频在线观看| 亚洲欧美一区二区三区久久| 国模私拍视频一区| 国产日韩欧美三级| 中文久久精品| 美国三级日本三级久久99| 亚洲最新中文字幕| 欧美国产日韩一区| 美女啪啪无遮挡免费久久网站| 黄色小说综合网站| 亚洲一级在线观看| 99国产精品99久久久久久| 欧美色中文字幕| 国产精品99久久久久久久女警| 国产亚洲综合精品| 亚洲精品色婷婷福利天堂| 国产日本欧美视频| 亚洲另类春色国产| 欧美电影免费观看网站| 亚洲精品视频一区| 欧美精品免费视频| 一区二区三区欧美在线观看| 国产亚洲午夜| 国产精品免费在线| 亚洲欧美日韩天堂一区二区| 午夜精品久久久久久久99樱桃 | 亚洲免费激情| 国产视频观看一区| 久久精品视频免费播放| 亚洲欧美国产高清| 亚洲日本欧美日韩高观看| 欧美日韩精品久久| 香蕉成人啪国产精品视频综合网| 亚洲欧洲在线观看| 久久躁狠狠躁夜夜爽| 亚洲国产天堂久久综合| 国产精品久久久久7777婷婷| 国产女主播一区二区| 一本久道久久久| 尤物99国产成人精品视频| 午夜日韩av| 久久精品国产亚洲aⅴ| 伊人久久婷婷| 亚洲国产一区二区在线| 欧美午夜精品久久久| 久久黄金**| 久久综合给合久久狠狠色| 亚洲伦伦在线| 久久精品人人做人人综合| 在线免费高清一区二区三区| 亚洲精品系列| 国语精品一区| 正在播放日韩| 在线观看一区视频| 一区二区高清视频| 亚洲精品少妇30p| 久久福利电影| 亚洲欧美国产视频| 女人色偷偷aa久久天堂| 亚洲一卡久久| 欧美精品在欧美一区二区少妇| 99视频日韩| 农村妇女精品| 欧美成人影音| 亚洲国产综合91精品麻豆| 亚洲欧美中日韩| 久久精品国产精品| 亚洲国产精品一区二区www在线 | 在线播放中文一区| 欧美一级电影久久| 久久riav二区三区| 国语自产在线不卡| 午夜精品久久久久久久蜜桃app| 夜夜嗨av一区二区三区中文字幕| 欧美成人精品在线观看| 亚洲国产99| 夜夜嗨av一区二区三区四季av| 欧美精品在线免费| 一本一道久久综合狠狠老精东影业| 日韩午夜激情av| 欧美亚男人的天堂| 欧美一区二区三区四区夜夜大片| 久久精品99无色码中文字幕| 在线观看国产欧美| 欧美精品一区二区蜜臀亚洲| 亚洲福利国产精品| 一二美女精品欧洲| 国产真实乱偷精品视频免| 老牛嫩草一区二区三区日本| 亚洲美女视频| 久久伊人免费视频| 亚洲色图自拍| 亚洲国产一区二区在线| 国产农村妇女精品一区二区| 欧美高清视频一二三区| 亚洲欧美国产精品桃花| 欧美成人有码| 久久精品视频在线看| 亚洲精品欧美| 亚洲精品乱码久久久久久蜜桃麻豆| 国产精品理论片| 欧美一区观看| 中文欧美字幕免费| 中文在线资源观看网站视频免费不卡| 久久精品视频免费播放| 一区二区三区欧美亚洲| 欧美色一级片| 国产精品入口福利| 欧美日韩亚洲综合在线| 欧美激情一级片一区二区| 久久精品夜色噜噜亚洲aⅴ| 亚洲淫片在线视频| 亚洲欧洲日产国码二区| 欧美成人国产| 欧美激情精品久久久久久蜜臀| 蜜桃av一区二区| 欧美激情亚洲另类| 日韩视频二区| 亚洲免费视频网站| 亚洲欧美怡红院| 欧美一区二区大片| 久久久久欧美精品| 欧美暴力喷水在线| 欧美私人啪啪vps| 国产亚洲欧美一区二区三区| 黄色成人av网站| 红桃视频国产精品| 日韩一区二区电影网| 久久aⅴ国产紧身牛仔裤| 久久九九久精品国产免费直播| 久久久综合视频| 最近中文字幕日韩精品| 欧美一级淫片aaaaaaa视频| 久久福利毛片| 国产精品久久久99| 亚洲国产精品一区二区第一页 | 欧美一区影院| 欧美日韩aaaaa| 亚洲国产精品成人| 久久综合色播五月| 99这里只有久久精品视频|