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