C言語のタイマーで時間の設定方法

C言語では、ヘッダのtime()関数で現在のタイムスタンプを取得し、タイムスタンプを比較することでタイマーを実現できます。

以下のシンプルなサンプルコードは、タイマー機能を使用して1秒ごとに現在時刻を出力する方法を紹介します。

#include <stdio.h>
#include <time.h>
#include <unistd.h>

int main() {
    time_t start_time = time(NULL);  // 获取程序开始时间
    time_t current_time;

    while (1) {
        current_time = time(NULL);  // 获取当前时间
        if (current_time - start_time >= 1) {  // 判断是否已经过了1秒
            printf("Current time: %s", ctime(&current_time));
            start_time = current_time;  // 更新开始时间
        }

        usleep(100000);  // 暂停100毫秒,避免过多占用CPU资源
    }

    return 0;
}

上述コードでは、time()関数を用いて現在時刻のタイムスタンプを取得し、ctime()関数でタイムスタンプから読みやすい文字列形式に変換しています。そして、開始時刻を設定し、1秒ごとに1秒経過しているかどうかを判定します。1秒経過していれば現在時刻を出力し、開始時刻を更新します。また、usleep()関数で100ミリ秒間停止し、CPUリソースを過剰に占有しないようにしています。

なお、上記のサンプルは簡便なタイマーの実装であり、実際の使用においてはより精度の高いタイマーが必要となる可能性があり、より高度なタイマーライブラリやオペレーティングシステムが提供するタイマー機構を利用できます。

bannerAds