c - 在 C 中为 syslog 编写一个宏

标签 c macros syslog

我正在尝试为系统日志编写一个宏,其公式如下。

#define MYLOG_INFO(...)   syslog(LOG_INFO, ...)

并在代码中这样使用。

MYLOG_INFO("use: %s received\n", argv[0]);

但是,我看到这样的错误。

error : expected expression before '...' token

我尝试将 for ... 更改为 __VA_ARGS__

warning : __VA_ARGS__ can only appear in the expansion of a C99 variadic macro

有人可以指出我哪里出了问题吗? -- 提前致谢!

最佳答案

我修改如下,可以正常编译。

#define MYLOG_INFO(args...)   syslog(LOG_INFO, ##args)

你可以试试。

关于c - 在 C 中为 syslog 编写一个宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35860936/

相关文章:

c - 更改数据类型后程序不显示第一个操作数

macros - 宏发出 : Eval of a macro body works, 但宏没有

c++ - 将 LEVEL 包含到 SysLog 日志文件中

linux - 如何知道syslog的函数是否调用成功?

c - 扫描目录程序-编译错误

c - lsof 总是报告偏移量等于 OSX 中的文件大小

c - 测试有关 scanf 返回值的所有情况

c++ - PSTR如何接收多个不以逗号分隔的字符串?

C 用宏解串

docker - 使用Docker syslog日志记录驱动程序时仅从STDERR收集