|
在编译书中附录的 标准出错处理例程时遇到的了gcc的警告,不明白为什么!
书中附录中的b-3程序用来实现ourhdr.h中的log_xxx函数的
- static void
- log_doit(int errnoflag, int priority, const char *fmt, va_list ap)
- {
- int errno_save;
- char buf[MAXLINE];
- errno_save = errno; /* value caller might want printed */
- vsprintf(buf, fmt, ap);
- if (errnoflag)
- sprintf(buf+strlen(buf), ": %s", strerror(errno_save));
- strcat(buf, "\n");
- if (debug) {
- fflush(stdout);
- fputs(buf, stderr);
- fflush(stderr);
- } else
- syslog(priority, buf);/* gcc报警的地方*/
- return;
- }
复制代码
gcc在编译时报“格式字符串不一个字面字符串而且没有待格式化的实参”
我测试后发现是buf参数导至的,我把参数换成一个常量字符串就行了,请问是为什么? |
|