c++ PRINT macro linux - 添加日期和时间

标签 c++ linux macros

在我的 C++ Linux 应用程序中我有这个宏:

#define PRINT(format,arg...) printf(format,##arg)

我想在 PRINT 字符串的开头添加日期和时间。 (这是一个日志,所以我想要在运行时使用变量) 如何更改此宏以执行此操作?

谢谢

最佳答案

你想在字符串中添加编译时间还是运行时间?如果是前者:

#define PRINT(format,arg...) printf(__DATE__ ":" __TIME__ "  " format,##arg)

大部分时间都有效。

请注意,这仅在调用 PRINT 仅使用字符串文字作为格式字符串时才有效。 (即,PRINT( "foo") 会起作用,但 PRINT( x ) 不起作用,其中 x 是一个变量)。

如果您想要一个运行时日期和时间,只需将“%s”附加到格式,然后添加一个函数调用,该函数返回您想要的参数之前的内容。

关于c++ PRINT macro linux - 添加日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4931549/

相关文章:

c++ - 无法跨多个 DLL 在 header 中定义单个对象

php - ImageMagick unicode 字体在 Linux 上安装不起作用

linux - 删除文件中匹配一个字符串但不匹配另一个字符串的行 - SED,BASH?

c - REPEAT_BYTE(x) 宏

linux - 通过鼠标按钮触发 AutoKey 脚本 - 如何?

macros - 如何在隐式导出宏时使用模块中定义的构造

c++ - 字符串不使用 std::cout 打印

c++ - 序列迭代器?没有一个在boost吗?

c++ - 如果我使用的是私有(private)结构,我如何将其声明为上面列出的公共(public)成员函数的参数?

mysql - 我可以使用 split linux 命令分割压缩的 sql 文件吗?如果不行的话还有什么方法可以做吗?