| .\" Copyright (c) 1993 |
| .\" The Regents of the University of California. All rights reserved. |
| .\" |
| .\" Redistribution and use in source and binary forms, with or without |
| .\" modification, are permitted provided that the following conditions |
| .\" are met: |
| .\" 1. Redistributions of source code must retain the above copyright |
| .\" notice, this list of conditions and the following disclaimer. |
| .\" 2. Redistributions in binary form must reproduce the above copyright |
| .\" notice, this list of conditions and the following disclaimer in the |
| .\" documentation and/or other materials provided with the distribution. |
| .\" 3. All advertising materials mentioning features or use of this software |
| .\" must display the following acknowledgement: |
| .\" This product includes software developed by the University of |
| .\" California, Berkeley and its contributors. |
| .\" 4. Neither the name of the University nor the names of its contributors |
| .\" may be used to endorse or promote products derived from this software |
| .\" without specific prior written permission. |
| .\" |
| .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| .\" SUCH DAMAGE. |
| .\" |
| .\" From: @(#)err.3 8.1 (Berkeley) 6/9/93 |
| .\" $FreeBSD: src/lib/libc/gen/err.3,v 1.11.2.5 2001/08/17 15:42:32 ru Exp $ |
| .\" |
| .Dd March 6, 1999 |
| .Dt ERR 3 |
| .Os |
| .Sh NAME |
| .Nm err , |
| .Nm verr , |
| .Nm errx , |
| .Nm verrx , |
| .Nm warn , |
| .Nm vwarn , |
| .Nm warnx , |
| .Nm vwarnx , |
| .Nd formatted error messages |
| .Sh SYNOPSIS |
| .Fd #include <err.h> |
| .Ft void |
| .Fn err "int eval" "const char *fmt" "..." |
| .Ft void |
| .Fn errx "int eval" "const char *fmt" "..." |
| .Ft void |
| .Fn warn "const char *fmt" "..." |
| .Ft void |
| .Fn warnx "const char *fmt" "..." |
| .Fd #include <stdarg.h> |
| .Ft void |
| .Fn verr "int eval" "const char *fmt" "va_list args" |
| .Ft void |
| .Fn verrx "int eval" "const char *fmt" "va_list args" |
| .Ft void |
| .Fn vwarn "const char *fmt" "va_list args" |
| .Ft void |
| .Fn vwarnx "const char *fmt" "va_list args" |
| .Sh DESCRIPTION |
| The |
| .Fn err |
| and |
| .Fn warn |
| family of functions display a formatted error message on the standard |
| error output. |
| In all cases, the last component of the program name, a colon character, |
| and a space are output. |
| If the |
| .Fa fmt |
| argument is not NULL, the |
| .Xr printf 3 |
| -like formatted error message is output. |
| The output is terminated by a newline character. |
| .Pp |
| The |
| .Fn err , |
| .Fn verr , |
| .Fn warn , |
| and |
| .Fn vwarn |
| functions append an error message obtained from |
| .Xr strerror 3 |
| based on a code or the global variable |
| .Va errno , |
| preceded by another colon and space unless the |
| .Fa fmt |
| argument is |
| .Dv NULL . |
| .Pp |
| The |
| .Fn err , |
| .Fn verr , |
| .Fn warn , |
| and |
| .Fn vwarn |
| functions use the global variable |
| .Va errno |
| to look up the error message. |
| .Pp |
| The |
| .Fn errx |
| and |
| .Fn warnx |
| functions do not append an error message. |
| .Pp |
| The |
| .Fn err , |
| .Fn verr , |
| .Fn errx , |
| and |
| .Fn verrx |
| functions do not return, but exit with the value of the argument |
| .Fa eval . |
| .Sh EXAMPLES |
| Display the current errno information string and exit: |
| .Bd -literal -offset indent |
| if ((p = malloc(size)) == NULL) |
| err(1, NULL); |
| if ((fd = open(file_name, O_RDONLY, 0)) == \-1) |
| err(1, "%s", file_name); |
| .Ed |
| .Pp |
| Display an error message and exit: |
| .Bd -literal -offset indent |
| if (tm.tm_hour < START_TIME) |
| errx(1, "too early, wait until %s", start_time_string); |
| .Ed |
| .Pp |
| Warn of an error: |
| .Bd -literal -offset indent |
| if ((fd = open(raw_device, O_RDONLY, 0)) == \-1) |
| warnx("%s: %s: trying the block device", |
| raw_device, strerror(errno)); |
| if ((fd = open(block_device, O_RDONLY, 0)) == \-1) |
| err(1, "%s", block_device); |
| .Ed |
| .Sh SEE ALSO |
| .Xr exit 3 , |
| .Xr printf 3 , |
| .Xr perror 3 , |
| .Xr strerror 3 |
| .Sh "CONFORMING TO" |
| These functions are non-standard BSD extensions. |
| .Sh HISTORY |
| The |
| .Fn err |
| and |
| .Fn warn |
| functions first appeared in |
| .Bx 4.4 . |