linux中乙個比較簡單的計時器是alarm() 和 signal()
如果要求不很精確的話,用它們兩個配合就足夠了。
從alarm這個名字的意思「警告」就可以看出,此計時器在設計時,也許就僅僅只是提供給呼叫者用來做警告
使用的。
宣告如下:
unsigned int alarm(unsigned int seconds)
為sigalrm訊號而設,在指定的時間seconds秒後,將向程序本身傳送sigalrm訊號,又稱為鬧鐘時間。
程序呼叫alarm後,任何以前的alarm()呼叫都將無效。如果引數seconds為零,那麼程序內將不再包含任何鬧鐘時間。
如果呼叫alarm()前,程序中已經設定了鬧鐘時間,則返回上乙個鬧鐘時間的剩餘時間,否則返回0。
需要包含標頭檔案:unistd.h
例子一:
#include
#include
#include
void sigalrm_fn(int sig)
...
int main(void)
...}
例子二:
#include
#include
void handler()
...main()
...}
linux中定時器 setitimer
參考文件 1 2 3 在參考文獻 1 中提到了 在linux下如果定時如果要求不太精確的話,使用alarm 和signal 就行了 精確到秒 但是如果想要實現精度較高的定時功能的話,就要使用setitimer函式。因為我一開始就查的是setitimer函式,所以這裡先介紹下這個函式吧。一 函式原型 ...
linux中crontab定時器
基本格式 由6個部分組成 command 分 時 日 月 周 命令 第1列 表示分鐘1 59 每分鐘用 或者 1表示 第2列 表示小時1 23 0表示0點 第3列 表示日期1 31 第4列 表示月份1 12 第5列 標識號星期0 6 0表示星期天 第6列 要執行的命令 crontab檔案的一些例子 ...
linux中crontab定時器
command 分 時 日 月 周 命令 第1列表示分鐘1 59 每分鐘用或者 1表示 第2列表示小時0 23 0表示0點 第3列表示日期1 31 第4列表示月份1 12 第5列標識號星期0 6 0表示星期天 第6列要執行的命令 上面的例子表示每晚的21 30重啟apache。上面的例子表示每月1 ...