C言語でgettimeofdayを使用した時間の取得方法


関数を使用することができます。この関数は、システムの現在の時刻をマイクロ秒単位で取得することができます。以下に、gettimeofdayを使用して時間を取得する簡単な方法といくつかのコード例を示します。

まず、sys/time.hヘッダーファイルをインクルードします。

#include <stdio.h>
#include <sys/time.h>
int main() {
    struct timeval tv;
    gettimeofday(&tv, NULL);
    printf("Seconds: %ld\n", tv.tv_sec);
    printf("Microseconds: %ld\n", tv.tv_usec);
    return 0;
}

上記のコードでは、struct timevalを使用して時間情報を格納するための変数tvを宣言します。gettimeofday関数を呼び出して、現在の時刻をtvに格納します。そして、tv_secメンバーには秒数が、tv_usecメンバーにはマイクロ秒が格納されています。最後に、printf関数を使用して時間情報を表示します。

もう一つの例として、現在の時刻をミリ秒単位で取得する方法を示します。

#include <stdio.h>
#include <sys/time.h>
long long current_timestamp() {
    struct timeval tv;
    gettimeofday(&tv, NULL);
    return (tv.tv_sec * 1000) + (tv.tv_usec / 1000);
}
int main() {
    long long timestamp = current_timestamp();
    printf("Current timestamp: %lld milliseconds\n", timestamp);
    return 0;
}

上記のコードでは、current_timestamp関数を定義して、現在の時刻をミリ秒単位で計算して返します。tv_secメンバーには秒数が、tv_usecメンバーにはマイクロ秒が格納されているため、それらを適切に変換してミリ秒単位のタイムスタンプを計算します。

これらの例では、gettimeofday関数を使用して時間情報を取得する方法を示しました。他にも、取得した時間情報を利用してさまざまな処理を行うことができます。例えば、タイムスタンプの差を計算して処理時間を測定したり、タイムスタンプを日付や時刻の文字列に変換したりすることも可能です。