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