| .\" Copyright (c) 1993 |
| .\" The Regents of the University of California. All rights reserved. |
| .\" |
| .\" %%%LICENSE_START(BSD_4_CLAUSE_UCB) |
| .\" 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. |
| .\" %%%LICENSE_END |
| .\" |
| .\" 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 $ |
| .\" |
| .\" 2011-09-10, mtk, Converted from mdoc to man macros |
| .\" |
| .TH ERR 3 2017-09-15 "Linux" "Linux Programmer's Manual" |
| .SH NAME |
| err, verr, errx, verrx, warn, vwarn, warnx, vwarnx \- formatted error messages |
| .SH SYNOPSIS |
| .nf |
| .B #include <err.h> |
| .PP |
| .BI "void err(int " eval ", const char *" fmt ", ...);" |
| .PP |
| .BI "void errx(int " eval ", const char *" fmt ", ...);" |
| .PP |
| .BI "void warn(const char *" fmt ", ...);" |
| .PP |
| .BI "void warnx(const char *" fmt ", ...);" |
| |
| .B #include <stdarg.h> |
| .PP |
| .BI "void verr(int " eval ", const char *" fmt ", va_list " args ); |
| .PP |
| .BI "void verrx(int " eval ", const char *" fmt ", va_list " args ); |
| .PP |
| .BI "void vwarn(const char *" fmt ", va_list " args ); |
| .PP |
| .BI "void vwarnx(const char *" fmt ", va_list " args ); |
| .fi |
| .SH DESCRIPTION |
| The |
| .BR err () |
| and |
| .BR 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 |
| .I fmt |
| argument is not NULL, the |
| .BR printf (3)-like |
| formatted error message is output. |
| The output is terminated by a newline character. |
| .PP |
| The |
| .BR err (), |
| .BR verr (), |
| .BR warn (), |
| and |
| .BR vwarn () |
| functions append an error message obtained from |
| .BR strerror (3) |
| based on the global variable |
| .IR errno , |
| preceded by another colon and space unless the |
| .I fmt |
| argument is |
| NULL. |
| .PP |
| The |
| .BR errx () |
| and |
| .BR warnx () |
| functions do not append an error message. |
| .PP |
| The |
| .BR err (), |
| .BR verr (), |
| .BR errx (), |
| and |
| .BR verrx () |
| functions do not return, but exit with the value of the argument |
| .IR eval . |
| .SH ATTRIBUTES |
| For an explanation of the terms used in this section, see |
| .BR attributes (7). |
| .TS |
| allbox; |
| lbw17 lb lb |
| l l l. |
| Interface Attribute Value |
| T{ |
| .BR err (), |
| .BR errx (), |
| .br |
| .BR warn (), |
| .BR warnx (), |
| .br |
| .BR verr (), |
| .BR verrx (), |
| .br |
| .BR vwarn (), |
| .BR vwarnx () |
| T} Thread safety MT-Safe locale |
| .TE |
| .sp 1 |
| .SH CONFORMING TO |
| These functions are nonstandard BSD extensions. |
| .\" .SH HISTORY |
| .\" The |
| .\" .BR err () |
| .\" and |
| .\" .BR warn () |
| .\" functions first appeared in |
| .\" 4.4BSD. |
| .SH EXAMPLE |
| Display the current |
| .I errno |
| information string and exit: |
| .PP |
| .in +4n |
| .EX |
| p = malloc(size); |
| if (p == NULL) |
| err(1, NULL); |
| fd = open(file_name, O_RDONLY, 0); |
| if (fd == \-1) |
| err(1, "%s", file_name); |
| .EE |
| .in |
| .PP |
| Display an error message and exit: |
| .PP |
| .in +4n |
| .EX |
| if (tm.tm_hour < START_TIME) |
| errx(1, "too early, wait until %s", start_time_string); |
| .EE |
| .in |
| .PP |
| Warn of an error: |
| .PP |
| .in +4n |
| .EX |
| fd = open(raw_device, O_RDONLY, 0); |
| if (fd == \-1) |
| warnx("%s: %s: trying the block device", |
| raw_device, strerror(errno)); |
| fd = open(block_device, O_RDONLY, 0); |
| if (fd == \-1) |
| err(1, "%s", block_device); |
| .EE |
| .in |
| .SH SEE ALSO |
| .BR error (3), |
| .BR exit (3), |
| .BR perror (3), |
| .BR printf (3), |
| .BR strerror (3) |