mirror of https://github.com/mkerrisk/man-pages
132 lines
4.1 KiB
Groff
132 lines
4.1 KiB
Groff
.\" Copyright (C) 2006 Justin Pryzby <pryzbyj@justinpryzby.com>
|
|
.\" and Copyright (C) 2006 Michael Kerrisk <mtk.manpages@gmail.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
|
|
.TH ERROR 3 2006-04-25 "GNU" "Linux Programmer's Manual"
|
|
.SH NAME
|
|
error, error_at_line, error_message_count, error_on_per_line, \
|
|
error_print_progname \- glibc error reporting functions
|
|
.SH SYNOPSIS
|
|
.nf
|
|
\fB#include <error.h>
|
|
|
|
\fBvoid error(int \fIstatus, \fBint\fI errnum, \
|
|
\fBconst char *\fIformat, \fB...);
|
|
|
|
\fBvoid error_at_line(int \fIstatus, \fBint \fIerrnum, \
|
|
\fBconst char *\fIfilename,
|
|
\fBunsigned int \fIlinenum, \
|
|
\fBconst char *\fIformat, \fB...);
|
|
|
|
\fBextern unsigned int \fIerror_message_count\fP;
|
|
|
|
\fBextern int \fIerror_one_per_line\fP;
|
|
|
|
\fBextern void (* \fIerror_print_progname\fB) (void);
|
|
.fi
|
|
.SH DESCRIPTION
|
|
.BR error ()
|
|
is a general error reporting function.
|
|
It flushes
|
|
.IR stdout ,
|
|
and then outputs to
|
|
.I stderr
|
|
the program name, a colon and a space, the message specified by the
|
|
.BR printf (3)-style
|
|
format string \fIformat\fP, and, if \fIerrnum\fP is
|
|
non-zero, a second colon and a space followed by the string given by
|
|
\fBperror(\fIerrnum\fB)\fP.
|
|
Any arguments required for
|
|
.I format
|
|
should follow
|
|
.I format
|
|
in the argument list.
|
|
The output is terminated by a newline character.
|
|
|
|
The program name printed by
|
|
.BR error ()
|
|
is the value of the global variable
|
|
.BR program_invocation_name (3).
|
|
.I program_invocation_name
|
|
initially has the same value as
|
|
.IR main ()'s
|
|
.IR argv[0] .
|
|
The value of this variable can be modified to change the output of
|
|
.BR error ().
|
|
|
|
If \fIstatus\fP has a non-zero value, then
|
|
.BR error ()
|
|
calls
|
|
.BR exit (3)
|
|
to terminate the program using the given value as the exit status.
|
|
|
|
The
|
|
.BR error_at_line ()
|
|
function is exactly the same as
|
|
.BR error (),
|
|
except for the addition of the arguments
|
|
.I filename
|
|
and
|
|
.IR linenum .
|
|
The output produced is as for
|
|
.BR error (),
|
|
except that after the program name are written: a colon, the value of
|
|
.IR filename ,
|
|
a colon, and the value of
|
|
.IR linenum .
|
|
The preprocessor values \fB__LINE__\fP and
|
|
\fB__FILE__\fP may be useful when calling
|
|
.BR 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 \fIerror_one_per_line\fP is set non-zero,
|
|
a sequence of
|
|
.BR error_at_line ()
|
|
calls with the
|
|
same value of \fIfilename\fP and \fIlinenum\fP will result in only
|
|
one message (the first) being output.
|
|
|
|
The global variable \fIerror_message_count\fP counts the number of
|
|
messages that have been output by
|
|
.BR error ()
|
|
and
|
|
.BR error_at_line ().
|
|
|
|
If the global variable \fIerror_print_progname\fP
|
|
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
|
|
.IR stderr .
|
|
.SH "CONFORMING TO"
|
|
These functions and variables are GNU extensions, and should not be
|
|
used in programs intended to be portable.
|
|
.SH SEE ALSO
|
|
.BR err (3),
|
|
.BR errno (3),
|
|
.BR exit (3),
|
|
.BR perror (3),
|
|
.BR program_invocation_name (3),
|
|
.BR strerror (3)
|