static void error_tail (int status, int errnum, const char *message, va_list args) { vfprintf (stderr, message, args); va_end (args); ++error_message_count; if (errnum) print_errno_message (errnum); putc ('\n', stderr); fflush (stderr); if (status) exit (status); }
/* Print the program name and error message MESSAGE, which is a printf-style format string with optional args. If ERRNUM is nonzero, print its corresponding system error message. Exit with status STATUS if it is nonzero. */ void error (int status, int errnum, const char *message, ...) { va_list args; flush_stdout (); fprintf (stderr, "%s: ", program_name); va_start (args, message); vfprintf (stderr, message, args); va_end (args); ++error_message_count; if (errnum) print_errno_message (errnum); fflush (stderr); if (status) exit (status); }