gmtime_r() — 時間の変換 (再始動可能)

フォーマット

#include <time.h>
struct tm *gmtime_r(const time_t *time, struct tm *result);

言語レベル: XPG4

スレッド・セーフ: はい。

説明

この関数は、gmtime() の再始動可能バージョンです。

gmtime_r() 関数は、time 値を秒単位で分割し、result に保管します。result は、<time.h> で定義された tm 構造体を指すポインターです。 time 値は、通常、time() 関数を呼び出して取得します。

tm 構造体のフィールドには、以下のものがあります。

tm_sec
秒 (0 から 61)
tm_min
分 (0 から 59)
tm_hour
時間 (0 から 23)
tm_mday
日 (1 から 31)
tm_mon
月 (0 から 11、1 月が 0 になる)
tm_year
年 (現在の年から 1900 を差し引く)
tm_wday
曜日 (0 から 6、日曜日が 0 になる)
tm_yday
ユリウス日付 (0 から 365、1 月 1 日が 0 になる)
tm_isdst
夏時間 (DST) が無効な場合は 0。夏時間 (DST) が有効な場合は正の値。情報が使用可能でない場合は負の値。

戻り値

gmtime_r() 関数は、結果である tm 構造体へポインターを戻します。

注:
  1. tm_sec の範囲 (0 から 61) は、2 うるう秒までを考慮に入れています。
  2. gmtime() および localtime() 関数は、静的に割り振られた共通のバッファーを変換に使用します。 これらの関数の 1 つを呼び出すごとに、以前の呼び出しの結果を変更します。asctime_r()ctime_r()gmtime_r()、および localtime_r() 関数は、戻りストリングの保持用に静的に割り振られた共通のバッファーを使用しません。 これらの関数は、再入可能性が望ましい場合に、asctime(), ctime()gmtime()、および localtime() 関数の代わりに使用可能です。
  3. カレンダー時間とは、エポックである UTC (1970 年 1 月 1 日 00:00:00) から数えた秒数です。

gmtime_r() の使用例

この例では、gmtime_r() 関数を使用して time_t 表記を協定世界時 (UTC) 文字ストリングへ調整し、次にそれを asctime_r() 関数を使用して出力可能なストリングに変換します。

#include <stdio.h>
#include <time.h>
 
int main(void)
{
   time_t ltime;
   struct tm mytime;
   char buf[50];
 
   time(&ltime)
	printf ("Coordinated Universal Time is %s¥n",
            asctime_r(gmtime_r(&ltime, &mytime), buf));
}
 
/************************  Output should be similar to:  **********
 
Coordinated Universal Time is Wed Aug 18 21:01:44 1993
*/

関連情報



[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]