在C語言中,可以使用定時器來定時執行某個方法。下面是一個使用信號和定時器的示例代碼:
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
// 定時器處理函數
void timer_handler(int signum) {
// 執行需要定時執行的方法
printf("定時器觸發,執行某個方法\n");
}
int main() {
// 設置定時器的處理函數
signal(SIGALRM, timer_handler);
// 設置定時器
struct itimerval timer;
timer.it_value.tv_sec = 2; // 初始定時時間
timer.it_value.tv_usec = 0;
timer.it_interval.tv_sec = 2; // 定時器間隔時間
timer.it_interval.tv_usec = 0;
// 開始定時器
setitimer(ITIMER_REAL, &timer, NULL);
// 死循環,保證程序一直運行直到被手動終止
while(1) {
sleep(1);
}
return 0;
}
上述代碼中,我們使用signal()
函數來設置定時器處理函數,然后使用setitimer()
函數來設置定時器的初始時間和間隔時間。在timer_handler()
方法中,可以執行需要定時執行的代碼。
該示例中,定時器每2秒觸發一次,然后會執行timer_handler()
方法,輸出"定時器觸發,執行某個方法"。
請注意,上述示例是以Linux平臺為例,不同平臺可能有所不同。