Hello all,
I'm compiling my program (using the pedantic, Wall flags). I'm using the syslog facility for logging. The syslog manual specifically specifies that you can use %m in the format string, which will be replaced by the strerror(errno) string. However, when I use the %m, the compiler throws the warning "ISO C++ does not support the ‘%m’ printf format".
I reckon they use the specifier in the syslog function declaration that adds the printf-like checks. However, as %m is not valid in printf but it is valid in syslog, this feels wrong to me.
My question is: how can I work around this? How can I "fix" those warnings without having to hack the syslog.h include file.
Two side questions: does anybody know what the speed is for syslog? Is it fast? Also, I use it in a multi threaded environment; man pthreads says this is safe, but apparently it's not safe on BSD, where reentrent versions exist for these functions... Is it right that it is thread safe on Linux?



LinkBack URL
About LinkBacks



