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

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观看| 亚洲一区欧美二区| 欧美日韩在线三级| 欧美精品福利| 欧美精品一区视频| 欧美日韩精品免费观看视一区二区| 欧美日韩999| 欧美性片在线观看| 国产农村妇女精品一二区| 国产日韩欧美在线一区| 极品av少妇一区二区| 最新国产精品拍自在线播放| 亚洲免费观看在线视频| 亚洲在线不卡| 久久一区二区视频| 亚洲国产精品一区二区www| 亚洲另类一区二区| 午夜精品久久久久久久久久久久| 久久国产免费| 乱中年女人伦av一区二区| 欧美11—12娇小xxxx| 夜夜嗨av色综合久久久综合网| 性欧美xxxx视频在线观看| 欧美福利影院| 国产麻豆成人精品| 亚洲精品日韩综合观看成人91| 香港成人在线视频| 亚洲国产精品va| 午夜精品一区二区三区电影天堂| 巨乳诱惑日韩免费av| 国产精品嫩草99a| 亚洲人成艺术| 久久久噜噜噜久久人人看| 亚洲靠逼com| 免费亚洲婷婷| 韩日成人av| 欧美一区2区视频在线观看| 亚洲国产小视频| 久久精品一区二区三区不卡| 欧美视频专区一二在线观看| 亚洲黄色尤物视频| 久久久久久免费| 亚洲午夜视频| 欧美日韩免费网站| 亚洲人成精品久久久久| 久久久久se| 亚洲综合欧美| 国产精品电影观看| 99国产精品99久久久久久| 暖暖成人免费视频| 久久av一区| 国产欧美精品日韩区二区麻豆天美| 亚洲美女av黄| 亚洲高清自拍| 免费视频一区| 亚洲日本成人在线观看| 欧美国产精品劲爆| 久久综合99re88久久爱| 国内精品视频一区| 久久久精品视频成人| 校园激情久久| 国模私拍视频一区| 看欧美日韩国产| 久久久在线视频| 伊人久久综合97精品| 美女网站久久| 免费在线日韩av| 亚洲精品国产精品久久清纯直播 | 亚洲一区二区视频在线观看| 欧美激情第一页xxx| 亚洲精品免费网站| 亚洲欧洲日本专区| 欧美精品在线观看| 一本色道久久88综合亚洲精品ⅰ | 欧美日韩精品欧美日韩精品一| 亚洲男人影院| 亚洲最新色图| 国产精品夜色7777狼人| 久久成人精品| 久久天天狠狠| 亚洲精品一区久久久久久| 亚洲欧洲三级| 国产精品白丝jk黑袜喷水| 亚洲欧美精品在线| 性欧美xxxx视频在线观看| ●精品国产综合乱码久久久久| 亚洲国产精品电影在线观看| 欧美三级午夜理伦三级中视频| 欧美一级大片在线观看| 久久―日本道色综合久久| 一区二区日韩伦理片| 亚洲欧美日韩国产| 亚洲高清自拍| 亚洲女同性videos| 亚洲欧洲精品一区二区三区波多野1战4| 一区二区三区偷拍| 午夜精品久久一牛影视| 亚洲欧洲一区二区天堂久久 | 欧美日本免费| 欧美自拍偷拍午夜视频| 欧美电影在线免费观看网站| 亚洲综合精品自拍| 乱码第一页成人| 午夜国产不卡在线观看视频| 久久这里只有| 久久成人一区二区| 欧美日本成人| 欧美高清成人| 国产综合在线看| 亚洲午夜在线观看视频在线| 亚洲精品午夜精品| 久久狠狠亚洲综合| 午夜伦欧美伦电影理论片| 欧美激情第1页| 欧美jizz19hd性欧美| 国产丝袜美腿一区二区三区| 99热这里只有成人精品国产| 在线看视频不卡| 欧美一级欧美一级在线播放| 亚洲制服av| 欧美日韩一区二区视频在线观看| 欧美aa在线视频| 伊人久久婷婷| 久久人人97超碰国产公开结果 | 欧美国产精品专区| 蜜臀久久99精品久久久画质超高清| 国产精品无码专区在线观看| 日韩视频精品| 99在线精品视频在线观看| 久久亚洲综合网| 久久精品噜噜噜成人av农村| 国产精品久线观看视频| 亚洲调教视频在线观看| 欧美激情国产精品| 最新成人av网站| 亚洲小少妇裸体bbw| 久久婷婷国产麻豆91天堂| 亚洲少妇最新在线视频| 国产毛片一区二区| 国产精品成人免费精品自在线观看| 久久久久久久久久久成人| 亚洲综合精品四区| 亚洲网站视频福利| 美女视频黄 久久| 中文日韩电影网站| 国产一区视频观看| 一区二区三区 在线观看视频| 亚洲精品美女久久7777777| 欧美不卡视频一区| 亚洲精品国产系列| 日韩午夜免费| 国产精品vvv| 亚洲一区二区网站| 久久免费精品视频| 亚洲国产欧美久久| 欧美理论大片| 亚洲尤物在线| 欧美刺激午夜性久久久久久久| 亚洲精品中文字幕女同| 欧美日韩极品在线观看一区| 99伊人成综合| 欧美一区二区三区在线| 国产一区二区三区直播精品电影| 久久夜色精品亚洲噜噜国产mv| 亚洲福利专区| 亚洲欧美日韩综合aⅴ视频| 国产一区二区三区在线观看免费视频| 久久偷窥视频| av成人国产| 麻豆精品视频在线观看| 亚洲三级免费电影| 国产精品久久久久毛片软件| 久久久久久亚洲综合影院红桃 | 日韩视频在线免费| 久久国产精品99久久久久久老狼| 亚洲大片av| 国产精品免费观看视频| 久久综合婷婷| 亚洲免费网址| 亚洲精品乱码久久久久久久久| 久久国产一区二区| 99精品视频免费观看| 国模私拍视频一区| 国产精品久久久久久久午夜 | 久久国产黑丝| 亚洲蜜桃精久久久久久久| 国产伦精品一区二区三区免费迷| 免费成人黄色片| 午夜精品一区二区三区在线播放| 亚洲欧洲在线看| 久久影院亚洲| 午夜亚洲福利在线老司机| 亚洲综合激情| 亚洲国产精品va在线看黑人动漫| 久久精品人人做人人综合 | 亚洲视频自拍偷拍| 尹人成人综合网| 国产亚洲日本欧美韩国| 国产精品国产一区二区| 欧美激情综合色|