Advanced Programming in the UNIX® Environment

(lily) #1
ptg10805159

904 Miscellaneous Source Code Appendix B


static void
log_doit(int errnoflag, int error, int priority, const char *fmt,
va_list ap)
{
char buf[MAXLINE];
vsnprintf(buf, MAXLINE-1, fmt, ap);
if (errnoflag)
snprintf(buf+strlen(buf), MAXLINE-strlen(buf)-1, ": %s",
strerror(error));
strcat(buf, "\n");
if (log_to_stderr) {
fflush(stdout);
fputs(buf, stderr);
fflush(stderr);
}else {
syslog(priority, "%s", buf);
}
}

Figure B.4 Error functions for daemons
Free download pdf