DESCRIPTION

error() is a general error reporting function. It flushes stdout, and
then outputs to stderr the program name, a colon and a space, the mes-
sage specified by the printf(3)-style format string format, and, if
errnum is non-zero, a second colon and a space followed by the string
given by perror(errnum). Any arguments required for format should fol-
low format in the argument list. The output is terminated by a newline
character.
The program name printed by error() is the value of the global variable
program_invocation_name(3). program_invocation_name initially has the
same value as main()'s argv[0]. The value of this variable can be mod-
ified to change the output of error().
If status has a non-zero value, then error() calls exit(3) to terminate
the program using the given value as the exit status.
The error_at_line() function is exactly the same as error(), except for
the addition of the arguments filename and linenum. The output pro-
duced is as for error(), except that after the program name are writ-
ten: a colon, the value of filename, a colon, and the value of linenum.
The preprocessor values __LINE__ and __FILE__ may be useful when call-
ing error_at_line(), but other values can also be used. For example,
these arguments could refer to a location in an input file.
If the global variable error_one_per_line is set non-zero, a sequence
of error_at_line() calls with the the same value of filename and
linenum will result in only one message (the first) being output.
The global variable error_message_count counts the number of messages
that have been output by error() and error_at_line().
If the global variable error_print_progname is assigned the address of
a function (i.e., is not NULL), then that function is called instead of
prefixing the message with the program name and colon. The function
should print a suitable string to stderr.

CONFORMING TO

These functions and variables are GNU extensions, and should not be
used in programs intended to be portable.