我正在使用 snprintf()
创建一个字符串:
snprintf(msgText, MAX_MSG_SIZE-1, "expr $((($(date +%s) - $(date +%s -r filename.txt)) / 86400))");
这旨在将 Linux 命令存储在 msgText
中。该命令将稍后执行并输出 filename.txt
的使用期限(以天为单位)。
这里的问题是:
这是错误的,因为 snprintf
期望 %s
有一个字符串参数。编译器报告此错误:
error: format ‘%s’ expects a matching ‘char *’ argument
我应该做什么?
最佳答案
如果你想要 %s
被替换,然后提供 const char*
snprintf
的参数以及要写入的值。
如果你想要文字%s
在msgText
,然后转义 %
如%%
,或将该字符串作为单个参数传递给格式字符串 "%s"
:
snprintf(msgText, MAX_MSG_SIZE-1, "%s", "$(date +%s) ...");
关于c - 使用 snprintf 进行字符串连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34048848/