日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
CTIME(3) FreeBSD ライブラリ関数マニュアル CTIME(3)
名称
asctime, asctime_r, ctime, ctime_r, difftime, gmtime, gmtime_r,
localtime, localtime_r, mktime, timegm -- バイナリ日付と時刻の値を変換す
る
ライブラリ
標準 C ライブラリ (libc, -lc)
書式
#include <time.h>
extern char *tzname[2];
char *
ctime(const time_t *clock);
double
difftime(time_t time1, time_t time0);
char *
asctime(const struct tm *tm);
struct tm *
localtime(const time_t *clock);
struct tm *
gmtime(const time_t *clock);
time_t
mktime(struct tm *tm);
time_t
timegm(struct tm *tm);
char *
ctime_r(const time_t *clock, char *buf);
struct tm *
localtime_r(const time_t *clock, struct tm *result);
struct tm *
gmtime_r(const time_t *clock, struct tm *result);
char *
asctime_r(const struct tm *tm, char *buf);
解説
関数 ctime(), gmtime() と localtime() は、すべて、引数として基準時点 (UTC
(協定世界時)、1970 年 1 月 1 日 00:00:00; time(3) を参照) 以来の秒単位の
時間を表す時間の値を取ります。
関数 localtime() は、clock によって指された時間の値を変換し、現在のタイム
ゾーン (と、夏時間のようなあらゆる他の要素) のために調節した後の値のため
の取り出された時間の情報を含んでいる (以下に記述されている) ``struct tm''
へのポインタを返します。指定された時間が int に収まらない年に変換されると
き、localtime() は、NULL を返します。タイムゾーンの調節は、TZ 環境変数
(tzset(3) を参照) によって指定されるように行われます。関数 localtime()
は、tzset(3) がプロセスによってまだ呼び出されていないなら、時間変換情報を
初期化するために tzset(3) を使用します。
tm 構造体に書き込まれた後に、localtime() は、tzname の tm_isdst 番目の要
素を localtime() の返り値とともに使用される、タイムゾーンの省略形である
ASCII 文字列へのポインタに設定します。
関数 gmtime() は、同様に時間の値を変換しますが、いつでもゾーンの調節がな
く、(以下に記述された) tm 構造体へのにポインタを返します。
ctime() 関数は、localtime() と同じ方法で現在のタイムゾーンのための時刻値
を調整し、次の形式の 26 文字の文字列へのポインタを返します:
Thu Nov 24 18:22:48 1986\n\0
すべてのフィールドには、一定の幅があります。
ctime_r() 関数は、呼び出し側が、少なくとも 26 文字の長さでなければならな
い、結果を格納するための出力バッファ buf を提供しなければならないことを除
いて、ctime() と同じ機能を提供します。localtime_r() と gmtime_r() 関数
は、呼び出し側が出力バッファ result を提供しなければならないことを除い
て、それぞれ localtime() と gmtime() と同じ機能を提供します。
asctime() 関数は、*tm によって指される構造体 tm の分解された時間を上の例
で示された形式に変換します。
asctime_r() 関数は、呼び出し側が、少なくとも 26 文字でなければならない、
結果を格納するための出力バッファ buf を提供することを除いて、asctime() と
同じ機能を提供します。
関数 mktime() と timegm() は、tm によって指された構造体の分解された時間を
time(3) 関数によって返される値 (すなわち、基準時点 UTC からの秒数) と同じ
エンコーディングの時間値に変換します。mktime() 関数は、現在のタイムゾーン
の設定にしたがって入力構造を解釈します (tzset(3) を参照)。timegm() 関数
は、Universal Coordinated Time (協定世界時) (UTC) を表す入力構造を解釈し
ます。
構造体の tm_wday と tm_yday 構成要素のオリジナルの値は、無視され、他の構
成要素のオリジナルの値は、それらの通常の範囲に制限されず、必要に応じて正
規化されます。例えば、10 月 40 日は、11 月 9 日に変換され、-1 の tm_hour
は、真夜中の 1 時間前を意味し、0 の tm_mday は、現在の月の前の日を意味
し、-2 の tm_mon は、tm_year の 1 月の 2 ヶ月前を意味します。(tm_isdst の
ために正または 0 の値によって、mktime() は、夏時間 (例えば、Daylight Sav
ing Time) が、それぞれ、実際に指定された時間であるか、そうでないかを最初
に推測します。tm_isdst のために負の値によって、mktime() 関数は、夏時間
が、実際に指定された時間であるかどうか推測することを試みます。tm_isdst と
tm_gmtoff メンバは、timegm() によって強制的に 0 にされます。)
成功して完了すると、構造体の tm_wday と tm_yday 構成要素の値が適切は、適
切に設定され、他の構成要素は、指定されたカレンダの時間を表すように設定さ
れますが、それらの値は、それらの通常の範囲に強制されます。tm_mday の最後
の値は、tm_mon と tm_year が決定されるまで設定されません。mktime() 関数
は、指定されたカレンダ時間を返します。カレンダ時間を表せることができない
なら、-1 を返します。
difftime() 関数は、秒単位の (time1 - time0) 式の 2 つのカレンダ時間の間の
差分を返します。
tm 構造体の定義と同様に外部の宣言は、<time.h> インクルードファイルにあり
ます。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; /* 曜日 (Sunday = 0) */
int tm_yday; /* 通日 (0 - 365) */
int tm_isdst; /* 夏時間が採用されているか? */
char *tm_zone; /* タイムゾーンの名前の省略形 */
long tm_gmtoff; /* 秒単位の UTC からのオフセット */
フィールド tm_isdst は、夏時間が有効であるなら、0 以外です。
フィールド tm_gmtoff は、グリニッジ子午線 (Prime Meridian) の東を示す正の
値の状態で、UTC から表される時間の (秒単位の) オフセットです。
関連項目
date(1), clock_gettime(2), gettimeofday(2), getenv(3), time(3), tzset(3),
tzfile(5)
規格
asctime(), ctime(), difftime(), gmtime(), localtime() と mktime() 関数
は、ISO/IEC 9899:1990 (``ISO C90'') に適合しています、そして選択された
ローカルのタイムゾーンが閏秒のテーブルを含まないという条件で ISO/IEC
9945-1:1996 (``POSIX.1'') に適合しています (zic(8) を参照)。
asctime_r(), ctime_r(), gmtime_r() と localtime_r() 関数は、ISO/IEC
9945-1:1996 (``POSIX.1'') に適合する予定です (この場合もやはり、選択され
たローカルのタイムゾーンが閏秒のテーブルを含まないという条件です)。
timegm() 関数は、いかなる標準によっても明記されていません。その関数は、上
に説明された標準関数を使用して完全にエミュレートできるわけではありませ
ん。
歴史
このマニュアルページは、Arthur Olson によって Berkeley に寄贈された時間
パッケージに由来し、4.3BSD で登場しました。
関数 asctime(), gmtime() と localtime() は、Version 5 AT&T UNIX ではじめ
て登場し、difftime() と mktime() は、4.3BSD-Reno で、timegm() と
timelocal()は、SunOS 4.0 で登場しました。
関数 asctime_r(), ctime_r(), gmtime_r(), と localtime_r() は、FreeBSD 8.0
以来利用可能です。
バグ
difftime(), mktime() と他の関数の _r() 変異型を除いて、これらの関数は、内
部の静的オブジェクトに、それらの結果を残し、そのオブジェクトへのポインタ
を返します。これらの関数に続く呼び出しは、同じオブジェクトを修正します。
C 標準は、現在のローカルなタイムゾーン設定を修正するプログラムのためのメ
カニズムを提供せず、POSIX-標準方法は、再入可能ではありません。(しかしなが
ら、スレッドセーフの実装は、POSIX スレッド環境で提供されています。)
返される tm 構造体の tm_zone フィールドは、また、(tzset(3) と
tzsetwall(3) への続く呼び出しと同様に) あらゆる続く呼び出しによって上書き
される、静的な文字の配列を指します。
外部変数 tzname の使用は、推奨されません。tm 構造体の tm_zone エントリが
推奨されます。
FreeBSD 13.2 September 16, 2022 FreeBSD 13.2