error, error_at_line, error_message_count, error_on_per_line, error_print_progname — glibc error reporting functions
#include <error.h>
| void
            error( | int | status, | 
| int | errnum, | |
| const char * | format, | |
| ... ); | 
| void
            error_at_line( | int | status, | 
| int | errnum, | |
| const char * | filename, | |
| unsigned int | linenum, | |
| const char * | format, | |
| ... ); | 
extern unsigned int error_message_count; extern int error_one_per_line; extern void (* error_print_progname) (void);
error() is a general error
      reporting function. It flushes stdout, and then outputs to stderr the program name, a colon and a
      space, the message specified by the printf(3)-style format
      string format, and,
      if errnum is nonzero,
      a second colon and a space followed by the string given by
      perror(errnum). Any arguments required for format should follow 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 modified to change the output of error().
If status has a
      nonzero 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 produced is
      as for error(), except that
      after the program name are written: a colon, the value of
      filename, a colon,
      and the value of linenum. The preprocessor
      values __LINE__ and
      __FILE__ may be useful when
      calling 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 nonzero, a
      sequence of error_at_line()
      calls with 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.
These functions and variables are GNU extensions, and should not be used in programs intended to be portable.
This page is part of release 2.79 of the Linux man-pages project. A
      description of the project, and information about reporting
      bugs, can be found at
      http://www.kernel.org/doc/man-pages/.
| Copyright (C) 2006 Justin Pryzby <pryzbyjjustinpryzby.com> and Copyright (C) 2006 Michael Kerrisk <mtk.manpagesgmail.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. References: glibc manual and source |