温馨提示×

C语言怎么定时执行某个方法

小亿
116
2023-11-28 17:45:35
栏目: 编程语言

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

0