Loading...
--- Libc/Libc-262.3.2/gen/err.3
+++ Libc/Libc-583/gen/err.3
@@ -30,9 +30,9 @@
.\" SUCH DAMAGE.
.\"
.\" From: @(#)err.3 8.1 (Berkeley) 6/9/93
-.\" $FreeBSD: src/lib/libc/gen/err.3,v 1.18 2001/10/01 16:08:50 ru Exp $
-.\"
-.Dd March 6, 1999
+.\" $FreeBSD: src/lib/libc/gen/err.3,v 1.20 2004/10/04 14:04:37 jkoshy Exp $
+.\"
+.Dd May 20, 2008
.Dt ERR 3
.Os
.Sh NAME
@@ -49,6 +49,9 @@
.Nm warnx ,
.Nm vwarnx ,
.Nm err_set_exit ,
+#ifdef UNIFDEF_BLOCKS
+.Nm err_set_exit_b ,
+#endif
.Nm err_set_file
.Nd formatted error messages
.Sh LIBRARY
@@ -59,6 +62,10 @@
.Fn err "int eval" "const char *fmt" "..."
.Ft void
.Fn err_set_exit "void (*exitf)(int)"
+#ifdef UNIFDEF_BLOCKS
+.Ft void
+.Fn err_set_exit_b "void (^exitb)(int)"
+#endif
.Ft void
.Fn err_set_file "void *vfp"
.Ft void
@@ -158,6 +165,10 @@
.Fn verrx
functions do not return, but exit with the value of the argument
.Fa eval .
+It is recommended that the standard values defined in
+.Xr sysexits 3
+be used for the value of
+.Fa eval .
The
.Fn err_set_exit
function can be used to specify a function which is called before
@@ -165,6 +176,24 @@
to perform any necessary cleanup; passing a null function pointer for
.Va exitf
resets the hook to do nothing.
+#ifdef UNIFDEF_BLOCKS
+The
+.Fn err_set_exit_b
+function is like
+.Fn err_set_exit
+except it takes a block pointer instead of a function pointer.
+.Bd -ragged -offset indent
+Note: The
+.Fn Block_copy
+function (defined in
+.In Blocks.h )
+is used by
+.Fn err_set_exit_b
+to make a copy of the block, especially for the case when a stack-based
+block might go out of scope when the subroutine returns.
+.Ed
+.Pp
+#endif
The
.Fn err_set_file
function sets the output stream used by the other functions.
@@ -207,8 +236,10 @@
.Ed
.Sh SEE ALSO
.Xr exit 3 ,
+.Xr fmtmsg 3 ,
.Xr printf 3 ,
-.Xr strerror 3
+.Xr strerror 3 ,
+.Xr sysexits 3
.Sh HISTORY
The
.Fn err
@@ -228,3 +259,8 @@
.Fn warnc
functions first appeared in
.Fx 3.0 .
+#ifdef UNIFDEF_BLOCKS
+The
+.Fn err_set_exit_b
+function first appeared in Mac OS X 10.6.
+#endif