summaryrefslogtreecommitdiff
path: root/static/netbsd/man3/err.3
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:15 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:15 -0400
commit253e67c8b3a72b3a4757fdbc5845297628db0a4a (patch)
treeadf53b66087aa30dfbf8bf391a1dadb044c3bf4d /static/netbsd/man3/err.3
parenta9157ce950dfe2fc30795d43b9d79b9d1bffc48b (diff)
docs: Added All NetBSD Manuals
Diffstat (limited to 'static/netbsd/man3/err.3')
-rw-r--r--static/netbsd/man3/err.3213
1 files changed, 213 insertions, 0 deletions
diff --git a/static/netbsd/man3/err.3 b/static/netbsd/man3/err.3
new file mode 100644
index 00000000..e48d2856
--- /dev/null
+++ b/static/netbsd/man3/err.3
@@ -0,0 +1,213 @@
+.\" $NetBSD: err.3,v 1.24 2024/02/02 21:16:41 jkoshy Exp $
+.\"
+.\" 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. 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.
+.\"
+.\" @(#)err.3 8.1 (Berkeley) 6/9/93
+.\"
+.Dd February 2, 2024
+.Dt ERR 3
+.Os
+.Sh NAME
+.Nm err ,
+.Nm verr ,
+.Nm errx ,
+.Nm verrx ,
+.Nm errc ,
+.Nm verrc ,
+.Nm warn ,
+.Nm vwarn ,
+.Nm warnx ,
+.Nm vwarnx ,
+.Nm warnc ,
+.Nm vwarnc
+.Nd formatted error messages
+.Sh LIBRARY
+.Lb libc
+.Sh SYNOPSIS
+.In err.h
+.Ft void
+.Fn err "int status" "const char *fmt" "..."
+.Ft void
+.Fn verr "int status" "const char *fmt" "va_list args"
+.Ft void
+.Fn errx "int status" "const char *fmt" "..."
+.Ft void
+.Fn verrx "int status" "const char *fmt" "va_list args"
+.Ft void
+.Fn errc "int status" "int code" "const char *fmt" "..."
+.Ft void
+.Fn verrc "int status" "int code" "const char *fmt" "va_list args"
+.Ft void
+.Fn warn "const char *fmt" "..."
+.Ft void
+.Fn vwarn "const char *fmt" "va_list args"
+.Ft void
+.Fn warnx "const char *fmt" "..."
+.Ft void
+.Fn vwarnx "const char *fmt" "va_list args"
+.Ft void
+.Fn warnc "int code" "const char *fmt" "..."
+.Ft void
+.Fn vwarnc "int code" "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.
+.Pp
+In all cases these functions output the last component of the program name,
+a colon character, and a space.
+If the
+.Fa fmt
+argument is not
+.Dv NULL ,
+it is used as a
+.Xr printf 3 Ns
+-like format specification for the error message.
+.Pp
+In the case of the
+.Fn err ,
+.Fn verr ,
+.Fn warn ,
+and
+.Fn vwarn
+functions, an additional error message string affiliated with the current
+value of the global variable
+.Va errno
+is output next, preceded by a colon character and a space if
+.Fa fmt
+is not
+.Dv NULL .
+The
+.Fn errc ,
+.Fn verrc ,
+.Fn warnc ,
+and
+.Fn vwarnc
+functions take an additional
+.Ar code
+argument to be used as the error number instead of using the global
+.Va errno
+variable.
+The
+.Fn errx ,
+.Fn verrx ,
+.Fn warnx ,
+and
+.Fn vwarnx
+functions will not output an additional error message string.
+.Pp
+In all cases, the output is terminated by a newline character.
+.Pp
+The
+.Fn err ,
+.Fn verr ,
+.Fn errc ,
+.Fn verrc ,
+.Fn errx ,
+and
+.Fn verrx
+functions do not return, but instead cause the program to terminate
+with the status value given by the argument
+.Fa status .
+It is often appropriate to use the value
+.Dv EXIT_FAILURE ,
+defined in
+.In stdlib.h ,
+as the
+.Fa status
+argument given to these functions.
+.Sh EXAMPLES
+Display the current
+.Va errno
+information string and terminate with status indicating failure:
+.Bd -literal -offset indent
+if ((p = malloc(size)) == NULL)
+ err(EXIT_FAILURE, NULL);
+if ((fd = open(file_name, O_RDONLY, 0)) == -1)
+ err(EXIT_FAILURE, "%s", file_name);
+.Ed
+.Pp
+Display an error message and terminate with status indicating failure:
+.Bd -literal -offset indent
+if (tm.tm_hour < START_TIME)
+ errx(EXIT_FAILURE, "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)
+ warn("%s", block_device);
+.Ed
+.Sh SEE ALSO
+.Xr exit 3 ,
+.Xr getprogname 3 ,
+.Xr printf 3 ,
+.Xr strerror 3
+.Sh HISTORY
+The
+.Fn err
+and
+.Fn warn
+functions first appeared in
+.Bx 4.4 .
+The
+.Fn errc
+and
+.Fn warnc
+functions first appeared in
+.Fx 3.0
+and
+.Nx 7.0 .
+.Sh CAVEATS
+It is important never to pass a string with user-supplied data as a
+format without using
+.Ql %s .
+An attacker can put format specifiers in the string to mangle your stack,
+leading to a possible security hole.
+This holds true even if you have built the string
+.Dq by hand
+using a function like
+.Fn snprintf ,
+as the resulting string may still contain user-supplied conversion specifiers
+for later interpolation by the
+.Fn err
+and
+.Fn warn
+functions.
+.Pp
+Always be sure to use the proper secure idiom:
+.Bd -literal -offset indent
+err(1, "%s", string);
+.Ed