在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平台为例,不同平台可能有所不同。