Linux中的定時器

2021-05-22 03:05:43 字數 660 閱讀 3651

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 ...