SYSEXITS(3) OpenBSD Programmer's Manual SYSEXITS(3)NAMEsysexits - preferable exit codes for programs
SYNOPSIS
#include <sysexits.h>
DESCRIPTION
It is not good practice to call exit(3) with arbitrary values to indicate
a failure condition when ending a program. Instead, the pre-defined exit
codes from sysexits should be used, so the caller of the process can get
a rough estimation about the failure class without looking up the source
code.
The successful exit is always indicated by a status of 0, or EX_OK.
Error numbers begin at EX__BASE to reduce the possibility of clashing
with other exit statuses that random programs may already return. The
meaning of the code is approximately as follows:
EX_USAGE (64) The command was used incorrectly, e.g., with the
wrong number of arguments, a bad flag, bad syntax
in a parameter, or whatever.
EX_DATAERR (65) The input data was incorrect in some way. This
should only be used for user's data and not system
files.
EX_NOINPUT (66) An input file (not a system file) did not exist or
was not readable. This could also include errors
like ``No message'' to a mailer (if it cared to
catch it).
EX_NOUSER (67) The user specified did not exist. This might be
used for mail addresses or remote logins.
EX_NOHOST (68) The host specified did not exist. This is used in
mail addresses or network requests.
EX_UNAVAILABLE (69) A service is unavailable. This can occur if a
support program or file does not exist. This can
also be used as a catch-all message when something
you wanted to do doesn't work, but you don't know
why.
EX_SOFTWARE (70) An internal software error has been detected. This
should be limited to non-operating system related
errors if possible.
EX_OSERR (71) An operating system error has been detected. This
is intended to be used for such things as ``cannot
fork'', or ``cannot create pipe''. It includes
things like getuid(2) returning a user that does
not exist in the passwd file.
EX_OSFILE (72) Some system file (e.g., /etc/passwd, /var/run/utmp)
does not exist, cannot be opened, or has some sort
of error (e.g., syntax error).
EX_CANTCREAT (73) A (user specified) output file cannot be created.
EX_IOERR (74) An error occurred while doing I/O on some file.
EX_TEMPFAIL (75) Temporary failure, indicating something that is not
really an error. In sendmail, this means that a
mailer, for example, could not create a connection,
and the request should be reattempted later.
EX_PROTOCOL (76) The remote system returned something that was ``not
possible'' during a protocol exchange.
EX_NOPERM (77) You did not have sufficient permission to perform
the operation. This is not intended for file
system problems, which should use EX_NOINPUT or
EX_CANTCREAT, but rather for higher level
permissions.
EX_CONFIG (78) Something was found in an unconfigured or
misconfigured state.
The numerical values corresponding to the symbolical ones are given in
parentheses for easy reference.
SEE ALSO_exit(2), exit(3)HISTORY
The sysexits file appeared sometime after 4.3BSD.
AUTHORS
This man page was written by Joerg Wunsch after the comments in
<sysexits.h>.
BUGS
The choice of an appropriate exit value is often ambiguous.
OpenBSD 4.9 September 9, 2008 OpenBSD 4.9