// file include/libbb.h line 1081 static void bb_error_msg(const char *s, ...) { va_list p; va_start(p, s); bb_verror_msg(s, p, (const char *)NULL); va_end(p); }
void FAST_FUNC bb_error_msg(const char *s, ...) { va_list p; va_start(p, s); bb_verror_msg(s, p, NULL); va_end(p); }
void bb_vperror_msg(const char *s, va_list p) { int err=errno; if(s == 0) s = ""; bb_verror_msg(s, p); if (*s) s = ": "; fprintf(stderr, "%s%s\n", s, strerror(err)); }
void FAST_FUNC bb_herror_msg(const char *s, ...) { va_list p; va_start(p, s); bb_verror_msg(s, p, hstrerror(h_errno)); va_end(p); }
void bb_error_msg(const char *s, ...) { va_list p; va_start(p, s); bb_verror_msg(s, p); va_end(p); putc('\n', stderr); }
void FAST_FUNC bb_perror_msg(const char *s, ...) { va_list p; va_start(p, s); /* Guard against "<error message>: Success" */ bb_verror_msg(s, p, errno ? strerror(errno) : NULL); va_end(p); }
void bb_error_msg_and_die(const char *s, ...) { va_list p; va_start(p, s); bb_verror_msg(s, p, NULL); va_end(p); xfunc_die(); }
void bb_perror_msg_and_die(const char *s, ...) { va_list p; va_start(p, s); /* Guard against "<error message>: Success" */ bb_verror_msg(s, p, errno ? strerror(errno) : NULL); va_end(p); xfunc_die(); }
void bb_error_msg_and_die(const char *s, ...) { va_list p; va_start(p, s); bb_verror_msg(s, p); va_end(p); putc('\n', stderr); exit(bb_default_error_retval); }
/* Log levels: * 0 is the most verbose, default 8. * For some reason, in fact only 5, 7 and 8 are used. */ static void crondlog(unsigned level, const char *msg, va_list va) { if (level >= G.log_level) { /* * We are called only for info meesages. * Warnings/errors use plain bb_[p]error_msg's, which * need not touch syslog_level * (they are ok with LOG_ERR default). */ syslog_level = LOG_INFO; bb_verror_msg(msg, va, /* strerr: */ NULL); syslog_level = LOG_ERR; } }
// file include/libbb.h line 1083 static void bb_perror_msg(const char *s, ...) { va_list p; va_start(p, s); char *tmp_if_expr$2; char *return_value_strerror$1; if(!(*bb_errno == 0)) { return_value_strerror$1=strerror(*bb_errno); tmp_if_expr$2 = return_value_strerror$1; } else tmp_if_expr$2 = (char *)NULL; bb_verror_msg(s, p, tmp_if_expr$2); va_end(p); }
static void crondlog(const char *ctl, ...) { va_list va; int level = (ctl[0] & 0x1f); va_start(va, ctl); if (level >= (int)LogLevel) { /* Debug mode: all to (non-redirected) stderr, */ /* Syslog mode: all to syslog (logmode = LOGMODE_SYSLOG), */ if (!DebugOpt && LogFile) { /* Otherwise (log to file): we reopen log file at every write: */ int logfd = open3_or_warn(LogFile, O_WRONLY | O_CREAT | O_APPEND, 0600); if (logfd >= 0) xmove_fd(logfd, STDERR_FILENO); } // TODO: ERR -> error, WARN -> warning, LVL -> info bb_verror_msg(ctl + 1, va, /* strerr: */ NULL); } va_end(va); if (ctl[0] & 0x80) exit(20); }
void bb_vperror_msg(const char *s, va_list p) { bb_verror_msg(s, p, strerror(errno)); }