ctime, ctime_s
From ja.cppreference.net
|
定義先ヘッダ
<time.h>
|
||
| (1) | ||
|
char
*
ctime
(
const
time_t
*
timer
)
;
|
(C23まで) | |
|
[
[
deprecated
]
]
char
*
ctime
(
const
time_t
*
timer
)
;
|
(C23以降) | |
|
errno_t ctime_s
(
char
*
buf, rsize_t bufsz,
const
time_t
*
timer
)
;
|
(2) | (C11以降) |
1)
エポックからの経過時間をカレンダー現地時間に変換し、次にテキスト表現に変換します。これは
asctime
(
localtime
(
timer
)
)
または
asctime
(
localtime_r
(
timer,
&
(
struct
tm
)
{
0
}
)
)
(C23以降)
を呼び出した場合と同様です。
この関数は非推奨であり、新しいコードでは使用すべきではありません。
(C23以降)
2)
(1)
と同様であるが、関数は
asctime_s
(
buf, bufsz, localtime_s
(
timer,
&
(
struct
tm
)
{
0
}
)
)
と等価であり、以下のエラーが実行時に検出され、現在インストールされている
constraint handler
関数を呼び出す:
-
-
bufまたはtimerがnullポインタである -
bufszが 26 より小さいか、 RSIZE_MAX より大きい
-
-
すべての境界チェック付き関数と同様に、
ctime_sは、実装によって __STDC_LIB_EXT1__ が定義されており、かつユーザーが <time.h> をインクルードする前に __STDC_WANT_LIB_EXT1__ を整数定数 1 に定義している場合にのみ利用可能であることが保証される。
結果の文字列は以下の形式を持ちます:
Www Mmm dd hh:mm:ss yyyy\n
-
Www- 曜日(Mon、Tue、Wed、Thu、Fri、Sat、Sunのいずれか)。 -
Mmm- 月(Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Decのいずれか)。 -
dd- 月の日 -
hh- 時間 -
mm- 分 -
ss- 秒 -
yyyy- 年
この関数はローカライゼーションをサポートしていません。
目次 |
パラメータ
| timer | - | time_t オブジェクトへのポインタ。表示する時間を指定します |
| buf | - |
少なくともサイズ
bufsz
のchar配列の最初の要素へのポインタ
|
| bufsz | - |
出力する最大バイト数。通常は
buf
が指すバッファのサイズ
|
戻り値
1)
日付と時刻の文字列表現を保持する静的ナル終端文字列へのポインタ。この文字列は
asctime
と
ctime
の間で共有される可能性があり、これらの関数のいずれかが呼び出されるたびに上書きされる可能性があります。
2)
成功時はゼロ(この場合、時間の文字列表現は
buf
が指す配列に書き出されている)、失敗時は非ゼロ(この場合、終端ナル文字は常に
buf
[
0
]
に書き込まれる。ただし
buf
がナルポインタの場合、または
bufsz
がゼロまたは
RSIZE_MAX
より大きい場合は除く。
注記
ctime
は静的データへのポインタを返し、スレッドセーフではありません。さらに、これは静的
tm
オブジェクトを変更し、これは
gmtime
および
localtime
と共有される可能性があります。POSIXはこの関数を廃止予定とし、代わりに
strftime
の使用を推奨しています。C標準も
ctime
および
ctime_s
の代わりに
strftime
を推奨しています。なぜなら
strftime
はより柔軟でロケール対応であるためです。
ctimeの動作は、25文字を超える文字列を生成するtime_tの値(例:10000年)に対して未定義です。
例
このコードを実行
出力例:
Tue May 26 21:51:03 2015 Tue May 26 21:51:03 2015
参考文献
- C17規格 (ISO/IEC 9899:2018):
-
- 7.27.3.2 ctime関数 (p: 287-288)
-
- K.3.8.2.2 ctime_s関数 (p: 454)
- C11規格 (ISO/IEC 9899:2011):
-
- 7.27.3.2 ctime関数 (p: 393)
-
- K.3.8.2.2 ctime_s関数 (p: 626)
- C99規格 (ISO/IEC 9899:1999):
-
- 7.23.3.2 ctime関数 (p: 342)
- C89/C90標準 (ISO/IEC 9899:1990):
-
- 4.12.3.2 ctime関数
関連項目
|
(C23で非推奨)
(C11)
|
tm
オブジェクトをテキスト表現に変換する
(関数) |
|
tm
オブジェクトをカスタムテキスト表現に変換する
(関数) |
|
|
C++ドキュメント
for
ctime
|
|