Linux中的定時器

linux中一個比較簡單的計時器是alarm() 和 signal()
    如果要求不很精確的話,用它們兩個配合就足夠了。

     從alarm這個名字的意思“警告”就可以看出,此計時器在設計時,也許就僅僅只是提供給調用者用來做警告

使用的。
    聲明如下:
    unsigned int alarm(unsigned int seconds)
    爲SIGALRM信號而設,在指定的時間seconds秒後,將向進程本身發送SIGALRM信號,又稱爲鬧鐘時間。
    進程調用alarm後,任何以前的alarm()調用都將無效。如果參數seconds爲零,那麼進程內將不再包含任何鬧鐘時間。
    如果調用alarm()前,進程中已經設置了鬧鐘時間,則返回上一個鬧鐘時間的剩餘時間,否則返回0。

    需要包含頭文件:unistd.h
   
例子一:

#include <stdio.h>
#include <unistd.h>
#include <signal.h>

void sigalrm_fn(int sig)
...{
     printf("alarm! ");
     alarm(10);
     return;
}

int main(void)
...{
    signal(SIGALRM, sigalrm_fn);
    alarm(2);
   printf("Do someting  ");
   while (1)
   ...{
       pause();
       printf("pause ");
   }

例子二:

#include<unistd.h>
#include<signal.h>
void handler()
...{
    printf(“hello ”);
}
main()
...{
    int i;
    signal(SIGALRM,handler);
    alarm(5);
    for(i=1;i<7;i++)
    ...{
         printf(“sleep %d ... ”,i);
         sleep(1);
     }
}


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/wudi_1982/archive/2007/05/11/1605153.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章