日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
localtime, localtime_r |
時刻値を,分割されたローカル時刻に変換します。
#include <time.h>関数バリアント _DECC_V4_SOURCE および _VMS_V6_SOURCE 機能テスト・マクロを定義してコンパイルすると,OpenVMS Version 7.0 より前の動作と等価な, localtime_r関数へのローカル時刻ベースのエントリ・ポイントが使用可能となります。struct tm *localtime (const time_t *timer);
struct tm *localtime_r (const time_t *timer, struct tm *result); (ISO POSIX-1)
timer
Epoch 後の経過秒数へのポインタ。この時刻は, time関数を使って生成することも,独自に指定することもできます。result
結果が格納される tm構造体へのポインタ。 tm構造体は <time.h>ヘッダ・ファイルに定義されており, 表 1-4 にも示しています。
localtimeおよび localtime_r関数は, timer によって指定された時刻 (Epoch 後の経過秒数) を,ローカル時刻で表現される分割された時刻に変換し, tm構造体に格納します。localtime_r関数と localtime関数の違いは,前者が結果をユーザ指定の tm構造体に格納することです。後者は結果を HP C RTL によって割り当てられたスレッド固有の静的メモリに格納します。これは,後の localtimeの呼び出しによって上書きされるので,保存しておきたい場合にはコピーを作成する必要があります。
実行に成功すると, localtimeは tm構造体へのポインタを返し, localtime_rはその第 2 引数を返します。実行に失敗すると,これらの関数は NULL ポインタを返します。
tm構造体は <time.h>ヘッダ・ファイルに定義されており, 表 1-4 にも示しています。
表 1-4 tm 構造体 int tm_sec ; 秒 (0-60) int tm_min ; 分 (0-59) int tm_hour ; 時 (0-23) int tm_mday ; 日 (1-31) int tm_mon ; 月 (0-11) int tm_year ; 1900 年を基準とした年 int tm_wday ; 日曜日を基準とした曜日 (0-6) int tm_yday ; 1 月 1 日からの日数 (0-365) int tm_isdst ; サマータイム・フラグ
- tm_isdst = 0 標準
- tm_isdst = 1 サマータイム
long tm_gmtoff ;1 グリニッジ標準時からの東へのずれの秒数 ( 負の値はグリニッジ標準時からの西へのずれの秒数を示す ) char * tm_zone ;1 タイム・ゾーン文字列。例: "GMT"
time_t型は, <time.h>ヘッダ・ファイルに,次のように定義されています。
typedef long int time_t |
注意 一般に,UTC ベースの時刻関数は,全プロセス的なデータであるメモリ内のタイム・ゾーン情報に影響を与えることがあります。ただし,アプリケーションの実行中にシステム・タイム・ゾーンが変化せず ( 通常は変化しません ),タイム・ゾーン・ファイルのキャッシュが有効になっていれば (デフォルトの設定),時刻関数の _rバリアント, asctime_r, ctime_r, gmtime_r,および localtime_rは,スレッドセーフかつ AST リエントラントとなります。 ただし,アプリケーションの実行中にシステム・タイム・ゾーンが変化する可能性がある場合,またはタイム・ゾーン・ファイルのキャッシュが有効になっていない場合には, UTC ベースの時刻関数の両方のバリアントは,スレッドセーフでも AST リエントラントでもない第 3 クラスの関数に属します。 |
x tm 構造体へのポインタ。 NULL 失敗を示します。
目次 | 索引 |
|