C++ 宏\uuuu时间戳\uuuu被卡住
您好,我目前正在从事一个项目,该项目有自己的日志系统,是几年前编写的,它使用C++ 宏\uuuu时间戳\uuuu被卡住,c++,timestamp,C++,Timestamp,您好,我目前正在从事一个项目,该项目有自己的日志系统,是几年前编写的,它使用\uuuuuu TIMESTAMP\uuuu打印当前日期和时间。我注意到有时候,这个宏会被卡住,并且一次又一次地返回相同的值。例如,时间是12:37,宏一直返回上一次运行的时间11:16。 \uuuuu TIMESTAMP\uuuuu是否有一部分内存在每次调用前都需要释放?由于它已经使用多年,没有人注意到,这可能是我的计算机出了问题吗?您不能用\uuuuuuu时间戳\uuuuuuu打印当前日期和时间,因为它是预处理器杂注
\uuuuuu TIMESTAMP\uuuu
打印当前日期和时间。我注意到有时候,这个宏会被卡住,并且一次又一次地返回相同的值。例如,时间是12:37,宏一直返回上一次运行的时间11:16。
\uuuuu TIMESTAMP\uuuuu
是否有一部分内存在每次调用前都需要释放?由于它已经使用多年,没有人注意到,这可能是我的计算机出了问题吗?您不能用\uuuuuuu时间戳\uuuuuuu
打印当前日期和时间,因为它是预处理器杂注。它将始终显示项目编译时间,而不是当前时间。用于获取当前时间。您不能使用\uuuu时间戳\uuuu
打印当前日期和时间,因为它是预处理器杂注。它将始终显示项目编译时间,而不是当前时间。用于获取当前时间。根据@SebastianPhilipp的评论,\uuuuu TIMESTAMP\uuuu
表示编译可执行文件的时间。另一种选择是,我建议查看函数,如ctime()
和asctime()
,根据@SebastianPhilipp的评论,\uuuu TIMESTAMP\uuu
表示编译可执行文件的时间。作为替代方案,我建议查看函数,例如ctime()
和astime()
TIMESTAMP是一个预处理器宏,它以Ddd Mmm Date hh::mm::ss yyy的形式扩展到当前时间(在编译时),您可以获得更多信息
这是一个日志示例
static char* time_to_string(time_t t, char* buf, size_t bufsize)
{
struct tm tm;
strftime(buf, bufsize, "%Y-%m-%d %H:%M:%S", localtime_r(&t, &tm));
return buf;
}
extern "C" void log_printf(FILE* stream, const char* format, ...)
{
char t[32];
flockfile(stream);
fprintf(stream, "[%s] ", time_to_string(time(NULL), t, sizeof(t)));
va_list va;
va_start(va, format);
vfprintf(stream, format, va);
va_end(va);
funlockfile(stream);
}
TIMESTAMP是一个预处理器宏,以Ddd Mmm Date hh::mm::ss yyyy的形式扩展到当前时间(编译时),您可以获得更多信息 这是一个日志示例
static char* time_to_string(time_t t, char* buf, size_t bufsize)
{
struct tm tm;
strftime(buf, bufsize, "%Y-%m-%d %H:%M:%S", localtime_r(&t, &tm));
return buf;
}
extern "C" void log_printf(FILE* stream, const char* format, ...)
{
char t[32];
flockfile(stream);
fprintf(stream, "[%s] ", time_to_string(time(NULL), t, sizeof(t)));
va_list va;
va_start(va, format);
vfprintf(stream, format, va);
va_end(va);
funlockfile(stream);
}
我们可以看到一些代码吗?Afaik
\uuuuuuuuuu时间戳\uuuuuuu
不打印当前时间,但打印编译可执行文件的时间。我们可以看到一些代码吗?Afaik\uuuuuuu时间戳\uuuuuu
不打印当前时间,但打印编译可执行文件的时间。