commit - a79e8ab44d667ef005e000dad03f60ae86742d31
commit + 3449b18918ac83c6d85cc31b87a3afbfadfceeeb
blob - 62c9e56c0745fc926e1648bd74a87bbc4085c6d4
blob + 1bab40af8d182b7e1497999729437a6c7f749307
--- man/man3/exits.3
+++ man/man3/exits.3
.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
void exits(char *msg)
.PP
.B
+int exitcode(char *msg)
+.PP
+.B
int atexit(void(*)(void))
.PP
.B
.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