X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=release%2Fman3%2Fctime.3;h=2e76be65ca35c66e0a904b800532b6e9c4442409;hb=4fa3e54b837e5814a4598ec901d77446bf5cb9b3;hp=7ce5a7aeb044ca3348a25402a48ea463ba68594a;hpb=7e089fcc022461849bbc09437103cc337a88dd9c;p=linuxjm%2FLDP_man-pages.git diff --git a/release/man3/ctime.3 b/release/man3/ctime.3 index 7ce5a7ae..2e76be65 100644 --- a/release/man3/ctime.3 +++ b/release/man3/ctime.3 @@ -27,312 +27,171 @@ .\" Modified Sat Jul 24 19:49:27 1993 by Rik Faith (faith@cs.unc.edu) .\" Modified Fri Apr 26 12:38:55 MET DST 1996 by Martin Schulze (joey@linux.de) .\" Modified 2001-11-13, aeb +.\" Modified 2001-12-13, joey, aeb .\" Modified 2004-11-16, mtk .\" -.\" Japanese Version Copyright (c) 1997 Hiroaki Nagoya -.\" all rights reserved. -.\" Translated 1997-02-10, Hiroaki Nagoya -.\" Updated 1999-09-01, Kentaro Shirakata -.\" Updated 2001-10-15, Kentaro Shirakata -.\" Updated 2001-12-13, Kentaro Shirakata -.\" Updated 2002-01-03, Kentaro Shirakata -.\" Updated 2005-02-24, Akihiro MOTOKI -.\" Updated 2008-04-04, Akihiro MOTOKI , LDP v2.79 -.\" Updated 2008-08-08, Akihiro MOTOKI , LDP v3.05 -.\" Updated 2008-11-10, Akihiro MOTOKI , LDP v3.13 +.\"******************************************************************* .\" -.\"WORD: Coordinated Univarsal Time ¶¨ÄêÀ¤³¦»þ -.\"WORD: broken-down time Í×ÁÇÊ̤λþ¹ï +.\" This file was generated with po4a. Translate the source file. .\" -.TH CTIME 3 2010-02-25 "" "Linux Programmer's Manual" -.SH ̾Á° +.\"******************************************************************* +.TH CTIME 3 2010\-02\-25 "" "Linux Programmer's Manual" +.SH 名前 asctime, ctime, gmtime, localtime, mktime, asctime_r, ctime_r, gmtime_r, -localtime_r \- ÆüÉդȻþ¹ï¤òÍ×ÁÇÊ̤λþ¹ï¤ä ASCII ¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +localtime_r \- 日付と時刻を要素別の時刻や ASCII に変換する +.SH 書式 .nf -.B #include +\fB#include \fP .sp -.BI "char *asctime(const struct tm *" tm ); +\fBchar *asctime(const struct tm *\fP\fItm\fP\fB);\fP .br -.BI "char *asctime_r(const struct tm *" tm ", char *" buf ); +\fBchar *asctime_r(const struct tm *\fP\fItm\fP\fB, char *\fP\fIbuf\fP\fB);\fP .sp -.BI "char *ctime(const time_t *" timep ); +\fBchar *ctime(const time_t *\fP\fItimep\fP\fB);\fP .br -.BI "char *ctime_r(const time_t *" timep ", char *" buf ); +\fBchar *ctime_r(const time_t *\fP\fItimep\fP\fB, char *\fP\fIbuf\fP\fB);\fP .sp -.BI "struct tm *gmtime(const time_t *" timep ); +\fBstruct tm *gmtime(const time_t *\fP\fItimep\fP\fB);\fP .br -.BI "struct tm *gmtime_r(const time_t *" timep ", struct tm *" result ); +\fBstruct tm *gmtime_r(const time_t *\fP\fItimep\fP\fB, struct tm *\fP\fIresult\fP\fB);\fP .sp -.BI "struct tm *localtime(const time_t *" timep ); +\fBstruct tm *localtime(const time_t *\fP\fItimep\fP\fB);\fP .br -.BI "struct tm *localtime_r(const time_t *" timep ", struct tm *" result ); +\fBstruct tm *localtime_r(const time_t *\fP\fItimep\fP\fB, struct tm *\fP\fIresult\fP\fB);\fP .sp -.BI "time_t mktime(struct tm *" tm ); +\fBtime_t mktime(struct tm *\fP\fItm\fP\fB);\fP .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï -.RB ( feature_test_macros (7) -»²¾È): +glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照): .in .ad l .sp -.BR asctime_r (), -.BR ctime_r (), -.BR gmtime_r (), -.BR localtime_r (): +\fBasctime_r\fP(), \fBctime_r\fP(), \fBgmtime_r\fP(), \fBlocaltime_r\fP(): .RS -_POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || -_SVID_SOURCE || _POSIX_SOURCE +_POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE +|| _POSIX_SOURCE .RE .ad -.SH ÀâÌÀ -´Ø¿ô -.BR ctime (), -.BR gmtime (), -.BR localtime () -¤Ï -\fItime_t\fP ·¿¤Î¥«¥ì¥ó¥À¡¼»þ¹ï¤ò°ú¤­¿ô¤Ë¤È¤ë¡£ -°ú¤­¿ô¤¬ÀäÂÐÃͤȤ·¤Æ²ò¼á¤µ¤ì¤ë¾ì¹ç¤Ï¡¢»þ¹ïµª¸µ (Epoch; -1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤Î·Ð²áÉÿô¤È²ò¼á¤µ¤ì¤ë¡£ +.SH 説明 +関数 \fBctime\fP(), \fBgmtime\fP(), \fBlocaltime\fP() は \fItime_t\fP 型のカレンダー時刻を引き数にとる。 +引き数が絶対値として解釈される場合は、時刻紀元 (Epoch; 1970\-01\-01 00:00:00 +0000 (UTC)) +からの経過秒数と解釈される。 .PP -´Ø¿ô -.BR asctime () -¤È -.BR mktime () -¤Ï -ǯ¡¦·î¡¦Æü¤Ê¤É¤ËʬΥ¤µ¤ì¤¿Í×ÁÇÊ̤λþ¹ï¤ò°ú¤­¿ô¤È¤¹¤ë¡£ +関数 \fBasctime\fP() と \fBmktime\fP() は 年・月・日などに分離された要素別の時刻を引き数とする。 .PP -Í×ÁÇÊ̤λþ¹ï¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë -\fItm\fP ¹½Â¤ÂΤËÊÝ»ý¤µ¤ì¤ë¡£ +要素別の時刻は \fI\fP で以下のように定義されている \fItm\fP 構造体に保持される。 .sp .in +4n .nf struct tm { - int tm_sec; /* Éà */ - int tm_min; /* ʬ */ - int tm_hour; /* »þ´Ö */ - int tm_mday; /* Æü */ - int tm_mon; /* ·î */ - int tm_year; /* ǯ */ - int tm_wday; /* ÍËÆü */ - int tm_yday; /* ǯÆâÄÌ»»Æü */ - int tm_isdst; /* ²Æ»þ´Ö */ + int tm_sec; /* 秒 */ + int tm_min; /* 分 */ + int tm_hour; /* 時間 */ + int tm_mday; /* 日 */ + int tm_mon; /* 月 */ + int tm_year; /* å¹´ */ + int tm_wday; /* 曜日 */ + int tm_yday; /* 年内通算日 */ + int tm_isdst; /* 夏時間 */ }; .fi .in .PP -\fItm\fP ¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Ï°Ê²¼¤ÎÄ̤ê: -.TP 10 -.I tm_sec -Éÿô¡¢¤Õ¤Ä¤¦¤Ï 0 ¤«¤é 59 ¤Þ¤Ç¤ÎÃÍ¡¢ -¤·¤«¤·±¼ÉäΤ¿¤á 60 ¤Þ¤Ç¤ÎÃͤϵö¤µ¤ì¤ë¡£ -.TP -.I tm_min -ʬ¿ô¡¢0 ¤«¤é 59 ¤Þ¤Ç¤ÎÃÍ¡£ -.TP -.I tm_hour -¿¿ÌëÃ椫¤é¤ÎÄÌ»»»þ´Ö¡¢0 ¤«¤é 23 ¤Þ¤Ç¤ÎÃÍ¡£ -.TP -.I tm_mday -·î¤Ï¤¸¤á¤«¤é¤ÎÆü¿ô¡¢1 ¤«¤é 31 ¤Þ¤Ç¤ÎÃÍ¡£ -.TP -.I tm_mon -1·î¤«¤é¤ÎÄÌ»»·î¿ô¡¢0 ¤«¤é 11 ¤Þ¤Ç¤ÎÃÍ¡£ -.TP -.I tm_year -1900 ǯ¤«¤é¤ÎÄÌ»»Ç¯¿ô¡£ -.TP -.I tm_wday -ÆüÍËÆü¤«¤é¤ÎÄÌ»»Æü¿ô(ÍËÆü)¡£0 ¤«¤é 6 ¤Þ¤Ç¤ÎÃÍ¡£ -.TP -.I tm_yday -1 ·î 1 Æü¤«¤é¤ÎÄÌ»»Æü¿ô¡¢0 ¤«¤é 365 ¤Þ¤Ç¤ÎÃÍ¡£ -.TP -.I tm_isdst -²Æ»þ´Ö¤¬Í­¸ú¤«¤É¤¦¤«¤Î¥Õ¥é¥°¡£ -Àµ¤ÎÃͤʤé¤Ð²Æ»þ´Ö¤ÏÍ­¸ú¤Ë¤Ê¤ê¡¢0 ¤Ê¤é¤Ð̵¸ú¡¢Éé¤ÎÃͤʤé¤Ð¤³¤Î¾ðÊó¤Ë¤Ï -°ÕÌ£¤¬¤Ê¤¤¡£ +\fItm\fP 構造体のメンバーは以下の通り: +.TP 10 +\fItm_sec\fP +秒数、ふつうは 0 から 59 までの値、 しかし閏秒のため 60 までの値は許される。 +.TP +\fItm_min\fP +分数、0 から 59 までの値。 +.TP +\fItm_hour\fP +真夜中からの通算時間、0 から 23 までの値。 +.TP +\fItm_mday\fP +月はじめからの日数、1 から 31 までの値。 +.TP +\fItm_mon\fP +1月からの通算月数、0 から 11 までの値。 +.TP +\fItm_year\fP +1900 年からの通算年数。 +.TP +\fItm_wday\fP +日曜日からの通算日数(曜日)。0 から 6 までの値。 +.TP +\fItm_yday\fP +1 月 1 日からの通算日数、0 から 365 までの値。 +.TP +\fItm_isdst\fP +夏時間が有効かどうかのフラグ。 正の値ならば夏時間は有効になり、0 ならば無効、負の値ならばこの情報には 意味がない。 .PP -.BI ctime( t ) -´Ø¿ô¤Ï¡¢ -.BI asctime(localtime( t )) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ -¥«¥ì¥ó¥À¡¼»þ¹ï \fIt\fP ¤ò +\fBctime(\fP\fIt\fP\fB)\fP 関数は、 \fBasctime(localtime(\fP\fIt\fP\fB))\fP と等価である。 カレンダー時刻 \fIt\fP を .sp .RS -"Wed Jun 30 21:49:08 1993\\n" +"Wed Jun 30 21:49:08 1993\en" .RE .sp -¤È¤¤¤¦·Á¼°¤Î NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤ØÊÑ´¹¤¹¤ë¡£ -ÍËÆü¤Îά¾Î¤Ï -"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ¤Ç¤¢¤ë¡£ -·î¤Îά¾Î¤Ï "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", -"Sep", "Oct", "Nov", "Dec" ¤Ç¤¢¤ë¡£ -ÊÖ¤êÃͤϡ¢ÀÅŪ (static) ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Îʸ»úÎó¤Ï¡¢ÆüÉÕ¡¦»þ¹ï´Ø¿ô¤Î¤¤¤º¤ì¤«¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -¤Þ¤¿¤³¤Î´Ø¿ô¤ÏÂç°èÊÑ¿ô \fItzname\fP, \fItimezone\fP, \fIdaylight\fP -¤Ë¸½ºß¤Î¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó¤òÀßÄꤹ¤ë -.RB ( tzset (3) -»²¾È)¡£ -¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë -.BR ctime_r () -¤âƱÍͤÀ¤¬¡¢ -ʸ»úÎó¤Ï¥æ¡¼¥¶¡¼¤¬ÍÑ°Õ¤·¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ë¡£¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤Ï -¾¯¤Ê¤¯¤È¤â 26 ¥Ð¥¤¥È°Ê¾å¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤Ï \fItzname\fP, \fItimezone\fP, and \fIdaylight\fP -¤òÀßÄꤹ¤ëɬÍפϤʤ¤¡£ +という形式の NULL 終端された文字列へ変換する。 曜日の略称は "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", +"Sat" である。 月の略称は "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", +"Sep", "Oct", "Nov", "Dec" である。 返り値は、静的 (static) に割り当てられた文字列へのポインタである。 +この文字列は、日付・時刻関数のいずれかが呼び出されると上書きされることがある。 またこの関数は大域変数 \fItzname\fP, \fItimezone\fP, +\fIdaylight\fP に現在のタイムゾーンの情報を設定する (\fBtzset\fP(3) 参照)。 リエントラント版である \fBctime_r\fP() +も同様だが、 文字列はユーザーが用意したバッファに格納される。バッファのサイズは 少なくとも 26 バイト以上でなければならない。 この関数は +\fItzname\fP, \fItimezone\fP, and \fIdaylight\fP を設定する必要はない。 .PP -´Ø¿ô -.BR gmtime () -¤Ï¡¢¥«¥ì¥ó¥À¡¼»þ¹ï \fItimep\fP ¤ò -¶¨ÄêÀ¤³¦»þ (UTC) ¤Ç¤ÎÍ×ÁÇÊ̤λþ¹ï¤ØÊÑ´¹¤¹¤ë¡£ -ǯ¤¬À°¿ô·¿¤Ë¼ý¤Þ¤é¤Ê¤¤¾ì¹ç¡¢NULL ¤òÊÖ¤¹¡£ -ÊÖ¤êÃͤÏÀÅŪ¤Ë³ÎÊݤµ¤ì¤¿¹½Â¤ÂΤò»Ø¤·¤Æ¤ª¤ê¡¢¤³¤Î¸å¤Ç -ÆüÉÕ¤ä»þ¹ï¤Ë´Ø¤¹¤ë´Ø¿ô¤Î¤¤¤º¤ì¤«¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È -¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -.BR gmtime_r () -¤âƱÍͤÀ¤¬¡¢ -¥Ç¡¼¥¿¤Ï¥æ¡¼¥¶¡¼¤¬ÍÑ°Õ¤·¤¿¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ë¡£ +関数 \fBgmtime\fP() は、カレンダー時刻 \fItimep\fP を 協定世界時 (UTC) での要素別の時刻へ変換する。 +年が整数型に収まらない場合、NULL を返す。 返り値は静的に確保された構造体を指しており、この後で 日付や時刻に関する関数のいずれかが呼び出されると +上書きされる可能性がある。 \fBgmtime_r\fP() も同様だが、 データはユーザーが用意した構造体に格納される。 .PP -´Ø¿ô -.BR localtime () -¤Ï¡¢¥«¥ì¥ó¥À¡¼»þ¹ï \fItimep\fP ¤ò -¥æ¡¼¥¶¤¬»ØÄꤷ¤¿¥¿¥¤¥à¥¾¡¼¥ó¤Ç¤Î»þ¹ïÍ×ÁÇÊ̤Îɽ¸½¤ØÊÑ´¹¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï -.BR tzset (3) -¤ò¸Æ¤Ó½Ð¤·¤¿¤«¤Î¤è¤¦¤Ë¿¶Éñ¤¤¡¢ -Âç°èÊÑ¿ô \fItzname\fP ¤Ë¸½ºß¤Î¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó¤òÀßÄꤹ¤ë¡£ -¤Þ¤¿¡¢\fItimezone\fP ¤Ë¶¨ÄêÀ¤³¦»þ (UTC) ¤È¥í¡¼¥«¥ëɸ½à»þ¤È¤Î -»þº¹¤ÎÉÿô¤òÀßÄꤷ¡¢ -°ìǯ¤Î°ìÉô¤Ç²Æ»þ´Ö¤¬Å¬ÍѤµ¤ì¤ë¾ì¹ç¤Ï \fIdaylight\fP ¤Ë 0 ¤¬ÀßÄꤵ¤ì¤ë¡£ -ÊÖ¤êÃͤÏÀÅŪ¤Ë³ÎÊݤµ¤ì¤¿¹½Â¤ÂΤò»Ø¤·¤Æ¤ª¤ê¡¢¤³¤Î¸å¤Ç -ÆüÉÕ¤ä»þ¹ï¤Ë´Ø¤¹¤ë´Ø¿ô¤Î¤¤¤º¤ì¤«¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È -¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -.BR localtime_r () -¤âƱÍͤÀ¤¬¡¢ -¥Ç¡¼¥¿¤Ï¥æ¡¼¥¶¡¼¤¬ÍÑ°Õ¤·¤¿¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ë¡£ -¤³¤Î´Ø¿ô¤Ï \fItzname\fP, \fItimezone\fP, and \fIdaylight\fP -¤òÀßÄꤹ¤ëɬÍפϤʤ¤¡£ +関数 \fBlocaltime\fP() は、カレンダー時刻 \fItimep\fP を ユーザが指定したタイムゾーンでの時刻要素別の表現へ変換する。 この関数は +\fBtzset\fP(3) を呼び出したかのように振舞い、 大域変数 \fItzname\fP に現在のタイムゾーンの情報を設定する。 +また、\fItimezone\fP に協定世界時 (UTC) とローカル標準時との 時差の秒数を設定し、 一年の一部で夏時間が適用される場合は +\fIdaylight\fP に 0 が設定される。 返り値は静的に確保された構造体を指しており、この後で 日付や時刻に関する関数のいずれかが呼び出されると +上書きされる可能性がある。 \fBlocaltime_r\fP() も同様だが、 データはユーザーが用意した構造体に格納される。 この関数は +\fItzname\fP, \fItimezone\fP, and \fIdaylight\fP を設定する必要はない。 .PP -´Ø¿ô -.BR asctime () -¤Ï¡¢Í×ÁÇÊ̤λþ¹ï \fItm\fP ¤ò -.BR ctime () -¤ÈƱ¤¸·Á¼°¤Î NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤ØÊÑ´¹¤¹¤ë¡£ -ÊÖ¤êÃͤÏÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£¤³¤Îʸ»úÎó¤Ï¡¢ -ÆüÉÕ¡¦»þ¹ï´Ø¿ô¤Î¤¤¤º¤ì¤«¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë -.BR asctime_r () -¤âƱÍͤÀ¤¬¡¢ -ʸ»úÎó¤Ï¥æ¡¼¥¶¡¼¤¬ÍÑ°Õ¤·¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ë¡£¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤Ï -¾¯¤Ê¤¯¤È¤â 26 ¥Ð¥¤¥È°Ê¾å¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +関数 \fBasctime\fP() は、要素別の時刻 \fItm\fP を \fBctime\fP() と同じ形式の NULL 終端された文字列へ変換する。 +返り値は静的に割り当てられた文字列へのポインタである。この文字列は、 日付・時刻関数のいずれかが呼び出されると上書きされることがある。 +リエントラント版である \fBasctime_r\fP() も同様だが、 文字列はユーザーが用意したバッファに格納される。バッファのサイズは 少なくとも +26 バイト以上でなければならない。 .PP -´Ø¿ô -.BR mktime () -¤Ï¡¢(¥í¡¼¥«¥ë¥¿¥¤¥à¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤ë) Í×ÁÇÊ̤λþ¹ï¤ò -¥«¥ì¥ó¥À¡¼»þ¹ï¤ØÊÑ´¹¤¹¤ë¡£¤³¤ÎºÝ¡¢¸Æ¤Ó½Ð¤·¸µ¤¬¥Õ¥£¡¼¥ë¥É -.I tm_wday -¤È -.I tm_yday -¤Ç»ØÄꤷ¤¿ÃͤÏ̵»ë¤µ¤ì¤ë¡£ -.BR mktime () -¤Ï¡¢¥Õ¥£¡¼¥ë¥É -.I tm_isdst -¤Ç»ØÄꤵ¤ì¤¿Ãͤˤè¤ê¡¢ -.I tm -¹½Â¤ÂΤÇÅϤµ¤ì¤¿»þ¹ï¤Ç²Æ»þ´Ö (daylight saving time; DST) ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ -¤¤¤ë¤«¤òÃΤ롣 -Àµ¤ÎÃͤϲƻþ´Ö¤¬Í­¸ú¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -Éé¤ÎÃͤǤ¢¤ì¤Ð¡¢ -.BR mktime () -¤Ï (¥¿¥¤¥à¥¾¡¼¥ó¾ðÊó¤È¥·¥¹¥Æ¥à¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»È¤Ã¤Æ) -»ØÄꤵ¤ì¤¿»þ¹ï¤Ç²Æ»þ´Ö¤¬Í­¸ú¤«¤É¤¦¤«¤òȽÃǤ¹¤ëɬÍפ¬¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +関数 \fBmktime\fP() は、(ローカルタイムで記述されている) 要素別の時刻を カレンダー時刻へ変換する。この際、呼び出し元がフィールド +\fItm_wday\fP と \fItm_yday\fP で指定した値は無視される。 \fBmktime\fP() は、フィールド \fItm_isdst\fP +で指定された値により、 \fItm\fP 構造体で渡された時刻で夏時間 (daylight saving time; DST) が有効になって いるかを知る。 +正の値は夏時間が有効であることを意味する。 負の値であれば、 \fBmktime\fP() は (タイムゾーン情報とシステムのデータベースを使って) +指定された時刻で夏時間が有効かどうかを判断する必要があることを意味する。 -.BR mktime () -¤Ï -.I tm -¹½Â¤ÂΤγƥե£¡¼¥ë¥É¤ò°Ê²¼¤Î¤è¤¦¤Ë½¤Àµ¤¹¤ë¡£ -.I tm_wday -¤È -.I tm_yday -¤Ë¤Ï¾¤Î¥Õ¥£¡¼¥ë¥É¤ÎÆâÍƤ«¤éµá¤á¤¿ÃͤòÀßÄꤹ¤ë¡£ -¹½Â¤ÂΤÎÍ×ÁǤ¬Í­¸ú¤ÊÈϰϤˤʤ¤¾ì¹ç¡¢Àµµ¬²½¤µ¤ì¤ë -(Î㤨¤Ð¡¢10 ·î 40 Æü¤Ï 11 ·î 9 Æü¤ËÊѹ¹¤µ¤ì¤ë)¡£ -.I tm_isdst -¤Ë¤Ï (ºÇ½é¤ÎÃͤˤ«¤«¤ï¤é¤º) Àµ¤ÎÃͤ« 0 ¤¬ÀßÄꤵ¤ì¤ë¡£ -Àµ¤ÎÃͤϻØÄꤵ¤ì¤¿»þ´Ö¤Ç²Æ»þ´Ö¤¬Í­¸ú¤Ç¤¢¤ë¤³¤È¤ò¼¨¤·¡¢ -0 ¤Ï̵¸ú¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -´Ø¿ô -.BR mktime () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢ -Âç°èÊÑ¿ô \fItzname\fP ¤¬¸½ºß¤Î¥¿¥¤¥à¥¾¡¼¥ó¤ËÀßÄꤵ¤ì¤ë¡£ +\fBmktime\fP() は \fItm\fP 構造体の各フィールドを以下のように修正する。 \fItm_wday\fP と \fItm_yday\fP +には他のフィールドの内容から求めた値を設定する。 構造体の要素が有効な範囲にない場合、正規化される (例えば、10 月 40 日は 11 月 9 +日に変更される)。 \fItm_isdst\fP には (最初の値にかかわらず) 正の値か 0 が設定される。 +正の値は指定された時間で夏時間が有効であることを示し、 0 は無効であることを示す。 関数 \fBmktime\fP() を呼び出すと、 大域変数 +\fItzname\fP が現在のタイムゾーンに設定される。 -Í×ÁÇÊ̤λþ¹ï¤ò¥«¥ì¥ó¥À¡¼»þ¹ï (µª¸µ (Epoch) ¤«¤é¤ÎÉÿô) ¤Çɽ¸½¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ -.BR mktime () -¤Ï -.I (time_t)\ (-1) -¤òÊÖ¤·¡¢Í×ÁÇÊ̤λþ¹ï¤Î¹½Â¤ÂÎ¥á¥ó¥Ð¡¼¤òÊѹ¹¤·¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ìÁ°½Ò¤·¤¿ÃͤòÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï NULL -.RB ( mktime () -¤Ç¤Ï \-1) ¤òÊÖ¤¹¡£ -.SH ½àµò -POSIX.1-2001. -C89 ¤È C99 ¤Ç¤Ï -.BR asctime (), -.BR ctime (), -.BR gmtime (), -.BR localtime (), -.BR mktime () -¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2008 ¤Ï¡¢ -.BR asctime (), -.BR asctime_r (), -.BR ctime (), -.BR ctime_r () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë¡¢ -.BR strftime (3) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -.BR asctime (), -.BR ctime (), -.BR gmtime (), -.BR localtime () -¤Î 4 ¤Ä¤Î´Ø¿ô¤ÏÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¤Î¤Ç¡¢¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ï¤Ê¤¤¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Î¥¹¥ì¥Ã¥É¥»¡¼¥ÕÈǤǤ¢¤ë -.BR asctime_r (), -.BR ctime_r (), -.BR gmtime_r (), -.BR localtime_r () -¤Ï SUSv2 ¤Çµ¬Äꤵ¤ì¤Æ¤ª¤ê¡¢ -libc 5.2.5 °Ê¹ß¤ÇÍøÍѤǤ­¤ë¡£ +要素別の時刻をカレンダー時刻 (紀元 (Epoch) からの秒数) で表現できない場合、 \fBmktime\fP() は \fI(time_t)\ (\-1)\fP を返し、要素別の時刻の構造体メンバーを変更しない。 +.SH 返り値 +各関数はそれぞれ前述した値を返す。エラーの場合は NULL (\fBmktime\fP() では \-1) を返す。 +.SH 準拠 +POSIX.1\-2001. C89 と C99 では \fBasctime\fP(), \fBctime\fP(), \fBgmtime\fP(), +\fBlocaltime\fP(), \fBmktime\fP() が規定されている。 POSIX.1\-2008 は、 \fBasctime\fP(), +\fBasctime_r\fP(), \fBctime\fP(), \fBctime_r\fP() を廃止予定としている。 代わりに、 \fBstrftime\fP(3) +の使用が推奨されている。 +.SH 注意 +\fBasctime\fP(), \fBctime\fP(), \fBgmtime\fP(), \fBlocaltime\fP() の 4 +つの関数は静的データへのポインタを返すので、スレッドセーフではない。 これらの関数のスレッドセーフ版である \fBasctime_r\fP(), +\fBctime_r\fP(), \fBgmtime_r\fP(), \fBlocaltime_r\fP() は SUSv2 で規定されており、 libc 5.2.5 +以降で利用できる。 -POSIX.1-2001 ¤Ç¤Ï¡¢¡Ö´Ø¿ô -.BR asctime (), -.BR ctime (), -.BR gmtime (), -.BR localtime () -¤Ï¡¢Í×ÁÇÊ̤λþ¹ï¤Î¹½Â¤ÂΤ« -.I char -·¿¤ÎÇÛÎ󤫤ΤɤÁ¤é¤«¤ÎÀÅŪ¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤¹¤â¤Î¤È¤¹¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Î¤¤¤º¤ì¤«¤ò¼Â¹Ô¤¹¤ë¤È¡¢Â¾¤Î´Ø¿ô¤Î¤É¤ì¤«¤¬¤³¤ì¤é¤Î -ÀÅŪ¥ª¥Ö¥¸¥§¥¯¥È¤Î¤É¤Á¤é¤«¤Ë³ÊǼ¤·¤ÆÊÖ¤·¤¿¾ðÊ󤬾å½ñ¤­¤µ¤ì¤ë¤«¤â -¤·¤ì¤Ê¤¤¡£¡×¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤³¤Î¤³¤È¤Ï glibc ¤Î¼ÂÁõ¤Çµ¯¤³¤ê¤¦¤ë¡£ +POSIX.1\-2001 では、「関数 \fBasctime\fP(), \fBctime\fP(), \fBgmtime\fP(), \fBlocaltime\fP() +は、要素別の時刻の構造体か \fIchar\fP 型の配列かのどちらかの静的オブジェクトを返すものとする。 +これらの関数のいずれかを実行すると、他の関数のどれかがこれらの 静的オブジェクトのどちらかに格納して返した情報が上書きされるかも +しれない。」となっている。 このことは glibc の実装で起こりうる。 .LP -glibc ¤ò´Þ¤à¿¤¯¤Î¼ÂÁõ¤Ç¤Ï¡¢ -.I tm_mday -¤Ë 0 ¤ò»ØÄꤹ¤ë¤ÈÁ°·î¤ÎºÇ½ªÆü¤ò°ÕÌ£¤·¤Æ¤¤¤ë¤È²ò¼á¤µ¤ì¤ë¡£ +glibc を含む多くの実装では、 \fItm_mday\fP に 0 を指定すると前月の最終日を意味していると解釈される。 .LP -glibc ¤Ç¤Ï¡¢ -.I -¤¬¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ëÁ°¤Ë -.B _BSD_SOURCE -¤¬ÄêµÁ¤µ¤ì¤ë¤È¡¢ -\fIstruct tm\fP ¤Ë°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤¬Äɲ䵤ì¤ë¡£ +glibc では、 \fI\fP がインクルードされる前に \fB_BSD_SOURCE\fP が定義されると、 \fIstruct +tm\fP に以下のフィールドが追加される。 .sp .RS .nf @@ -341,30 +200,13 @@ const char *tm_zone; /* Timezone abbreviation */ .fi .RE .sp -¤³¤ì¤Ï BSD ³ÈÄ¥¤Ç¤¢¤ê¡¢4.3BSD-Reno ¤«¤é¸½¤ì¤¿¡£ +これは BSD 拡張であり、4.3BSD\-Reno から現れた。 -POSIX.1-2004 ¤Ë¤è¤ë¤È¡¢ -.BR localtime () -¤Ï¤¢¤¿¤«¤â -.BR tzset () -¤¬¸Æ¤Ð¤ì¤¿¤«¤Î¤è¤¦¤Ë¿¶Éñ¤¦¤³¤È¤¬Í׵ᤵ¤ì¤Æ¤¤¤ë¤¬¡¢ -.BR localtime_r () -¤Ë¤Ï¤³¤ÎÍ×·ï¤Ï¤Ê¤¤¡£ -.\" http://thread.gmane.org/gmane.comp.time.tz/2034/ ¤ò»²¾È¡£ -°Ü¿¢À­¤¬É¬Íפʥ³¡¼¥É¤Ç¤Ï¡¢ -.BR localtime_r () -¤ÎÁ°¤Ë -.BR tzset () -¤ò¸Æ¤Ó½Ð¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ -.BR date (1), -.BR gettimeofday (2), -.BR time (2), -.BR utime (2), -.BR clock (3), -.BR difftime (3), -.BR strftime (3), -.BR strptime (3), -.BR timegm (3), -.BR tzset (3), -.BR time (7) +.\" See http://thread.gmane.org/gmane.comp.time.tz/2034/ +POSIX.1\-2004 によると、 \fBlocaltime\fP() はあたかも \fBtzset\fP(3) +が呼ばれたかのように振舞うことが要求されているが、 \fBlocaltime_r\fP() にはこの要件はない。 移植性が必要なコードでは、 +\fBlocaltime_r\fP() の前に \fBtzset\fP(3) を呼び出しておくべきである。 +.SH 関連項目 +\fBdate\fP(1), \fBgettimeofday\fP(2), \fBtime\fP(2), \fButime\fP(2), \fBclock\fP(3), +\fBdifftime\fP(3), \fBstrftime\fP(3), \fBstrptime\fP(3), \fBtimegm\fP(3), \fBtzset\fP(3), +\fBtime\fP(7)