The explain_exit_on_exit function may be used to have the
calling program print an explanation of its exit status (the value
passed to exit(3) or the return value from main)
immediately before it terminates.
The explain_exit_on_error function may be used to have the
calling program print an explanation of its exit status immediately
before it terminates, if that exit status is not EXIT_SUCCESS.
The explain_exit_cancel function may be used to
cancel the effect of the explain_exit_on_exit or
explain_exit_on_error fucntion.
These functions may be called multiple times, and in any order. The
last called has precedence. The explanation will never be printed more
than once.
Call Exit As Normal
In order to have the explanation printed, simply call exit(3)
as normal, or return from main as normal.
Do not call any of these functions in order to exit your program,
they are called before you exit your program.
Caveat
This functionality is only available on systems with the
on_exit(3) system call.
Unfortunately, the atexit(3) system call is not sufficiently
capable, as it does not pass the exit status to the registered function.