Commit Diff


commit - a79e8ab44d667ef005e000dad03f60ae86742d31
commit + 3449b18918ac83c6d85cc31b87a3afbfadfceeeb
blob - 62c9e56c0745fc926e1648bd74a87bbc4085c6d4
blob + 1bab40af8d182b7e1497999729437a6c7f749307
--- man/man3/exits.3
+++ man/man3/exits.3
@@ -1,6 +1,6 @@
 .TH EXITS 3
 .SH NAME
-exits, _exits, atexit, atexitdont, terminate \- terminate process, process cleanup
+exits, _exits, exitcode, atexit, atexitdont \- terminate process, process cleanup
 .SH SYNOPSIS
 .B #include <u.h>
 .br
@@ -13,6 +13,9 @@ void	_exits(char *msg)
 void	exits(char *msg)
 .PP
 .B
+int	exitcode(char *msg)
+.PP
+.B
 int	atexit(void(*)(void))
 .PP
 .B
@@ -87,8 +90,19 @@ cancels a previous registration of an exit function.
 .SH BUGS
 Because of limitations of Unix, the exit status of a
 process can only be an 8-bit integer.
-Exit status 0 is used for empty exit messages, and 1 for
-non-empty messages.
+.I Exits
+and
+.I _exits
+treat null or empty exit status as exit code 0
+and call 
+.I exitcode
+to translate any other string into an exit code.
+By default, the library provides an
+.I exitcode
+that maps all messages to 1.
+Applications may find it useful to provide their own 
+implementations of
+.I exitcode .
 .PP
 Exit codes 97 through 99 are used by the thread library to signal
 internal synchronization errors between the main program