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 小时制的时钟格式。 这些日子缩写为: SunMonTueWedThuFriSat。 月份缩写为: JanFebMarAprMayJunJulAugSepOctNovDec。 所有字段都具有恒定宽度。 只有一个数字的日期前面有一个零。 换行符 (\n) 和空字符 (\0) 占据字符串的最后两个位置。

返回值

ctime_r() 函数返回一个指向字符串结果的指针。 如果该函数不成功,那么它将返回 NULL。 对 ctime_r() 的调用等效于:
   asctime_r(localtime_r(&anytime, buf2), buf)
其中 buf 是一个指向 char 的指针。

示例

此示例使用 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));
}

相关信息