ctime_r() — 時間から文字ストリングへの変換 (再始動可能)

フォーマット

#include <time.h>
char *ctime_r(const time_t *time, char *buf);

言語レベル

XPG4

スレッド・セーフ

はい

ロケール依存

この関数の振る舞いは、現行ロケールの LC_TOD カテゴリーの影響を受ける可能性があります。詳細については、CCSID およびロケールの理解を参照してください。

説明

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

ctime_r() 関数は、time が指す時間の値を文字ストリング形式の現地時間に変換します。 時間の値は通常、time() 関数を呼び出して取得します。

ctime_r() 関数が作成するストリングの結果にはちょうど 26 文字が含まれ、以下の形式になっています。
   "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n"
以下に例を示します。
   Mon Jul 16 02:03:55 1987\n\0

ctime_r() 関数は 24 時間クロック形式を使用します。曜日は、SunMonTueWedThuFri、および Sat に省略されます。月の省略形は、JanFebMarAprMayJunJulAugSepOctNov、および Dec です。すべてのフィールドには固定幅があります。1 桁しかない日付は、ゼロがその前に置かれます。 改行文字 (\n) および NULL 文字 (\0) がストリングの最後の位置を占めます。

戻り値

ctime_r() 関数は、文字ストリングの結果を指すポインターを戻します。 関数が正常に実行されなかった場合、NULL を戻します。ctime_r() 関数の呼び出しは次の式と同じです。
   asctime_r(localtime_r(&anytime, buf2), buf)
ここで、buf は文字を指すポインターです。

次の例では、ctime_r() を使用してシステム・クロックをポーリングします。ポーリングの次に、現在の日時を示すメッセージを出力します。
#include <time.h>
#include <stdio.h>
 
int main(void)
{
   time_t ltime;
   char buf[50];
 
   time(&ltime);
   printf("the time is %s", ctime_r(&ltime, buf));
}