如何在c中获取日志的适当时间戳?

时间:2012-03-07 06:45:18

标签: c logging timestamp

我正在创建一个客户端 - 服务器应用程序。我想做一些记录。

服务器在C中。现在我打印到终端的消息。所以我可能只是将其复制到sprintf并添加时间戳。 我该怎么做那个时间戳? 它应该包括日期,小时,分钟,秒。

2 个答案:

答案 0 :(得分:16)

#include <time.h>
void timestamp()
{
    time_t ltime; /* calendar time */
    ltime=time(NULL); /* get current cal time */
    printf("%s",asctime( localtime(&ltime) ) );
}

在我的电脑上,它只是打印

Wed Mar 07 12:27:29 2012

在此查看所有时间相关功能 http://pubs.opengroup.org/onlinepubs/7908799/xsh/time.h.html

答案 1 :(得分:5)

请在下面找到Pavan答案的主题安全版本。

time_t ltime;
struct tm result;
char stime[32];

ltime = time(NULL);
localtime_r(&ltime, &result);
asctime_r(&result, stime);

有关详细信息,请参阅this