C言語でどのように特定のメソッドを定期的に実行しますか?

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プラットフォームを例としており、プラットフォームによっては異なる場合がありますのでご注意ください。

bannerAds