Back to index

glibc  2.9
sysexits.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 1987, 1993
00003  *     The Regents of the University of California.  All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  * 1. Redistributions of source code must retain the above copyright
00009  *    notice, this list of conditions and the following disclaimer.
00010  * 2. Redistributions in binary form must reproduce the above copyright
00011  *    notice, this list of conditions and the following disclaimer in the
00012  *    documentation and/or other materials provided with the distribution.
00013  * 4. Neither the name of the University nor the names of its contributors
00014  *    may be used to endorse or promote products derived from this software
00015  *    without specific prior written permission.
00016  *
00017  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
00018  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00019  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00020  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
00021  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00022  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
00023  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
00024  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00025  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
00026  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00027  * SUCH DAMAGE.
00028  *
00029  *     @(#)sysexits.h       8.1 (Berkeley) 6/2/93
00030  */
00031 
00032 #ifndef       _SYSEXITS_H
00033 #define       _SYSEXITS_H 1
00034 
00035 /*
00036  *  SYSEXITS.H -- Exit status codes for system programs.
00037  *
00038  *     This include file attempts to categorize possible error
00039  *     exit statuses for system programs, notably delivermail
00040  *     and the Berkeley network.
00041  *
00042  *     Error numbers begin at EX__BASE to reduce the possibility of
00043  *     clashing with other exit statuses that random programs may
00044  *     already return.  The meaning of the codes is approximately
00045  *     as follows:
00046  *
00047  *     EX_USAGE -- The command was used incorrectly, e.g., with
00048  *            the wrong number of arguments, a bad flag, a bad
00049  *            syntax in a parameter, or whatever.
00050  *     EX_DATAERR -- The input data was incorrect in some way.
00051  *            This should only be used for user's data & not
00052  *            system files.
00053  *     EX_NOINPUT -- An input file (not a system file) did not
00054  *            exist or was not readable.  This could also include
00055  *            errors like "No message" to a mailer (if it cared
00056  *            to catch it).
00057  *     EX_NOUSER -- The user specified did not exist.  This might
00058  *            be used for mail addresses or remote logins.
00059  *     EX_NOHOST -- The host specified did not exist.  This is used
00060  *            in mail addresses or network requests.
00061  *     EX_UNAVAILABLE -- A service is unavailable.  This can occur
00062  *            if a support program or file does not exist.  This
00063  *            can also be used as a catchall message when something
00064  *            you wanted to do doesn't work, but you don't know
00065  *            why.
00066  *     EX_SOFTWARE -- An internal software error has been detected.
00067  *            This should be limited to non-operating system related
00068  *            errors as possible.
00069  *     EX_OSERR -- An operating system error has been detected.
00070  *            This is intended to be used for such things as "cannot
00071  *            fork", "cannot create pipe", or the like.  It includes
00072  *            things like getuid returning a user that does not
00073  *            exist in the passwd file.
00074  *     EX_OSFILE -- Some system file (e.g., /etc/passwd, /etc/utmp,
00075  *            etc.) does not exist, cannot be opened, or has some
00076  *            sort of error (e.g., syntax error).
00077  *     EX_CANTCREAT -- A (user specified) output file cannot be
00078  *            created.
00079  *     EX_IOERR -- An error occurred while doing I/O on some file.
00080  *     EX_TEMPFAIL -- temporary failure, indicating something that
00081  *            is not really an error.  In sendmail, this means
00082  *            that a mailer (e.g.) could not create a connection,
00083  *            and the request should be reattempted later.
00084  *     EX_PROTOCOL -- the remote system returned something that
00085  *            was "not possible" during a protocol exchange.
00086  *     EX_NOPERM -- You did not have sufficient permission to
00087  *            perform the operation.  This is not intended for
00088  *            file system problems, which should use NOINPUT or
00089  *            CANTCREAT, but rather for higher level permissions.
00090  */
00091 
00092 #define EX_OK        0      /* successful termination */
00093 
00094 #define EX__BASE     64     /* base value for error messages */
00095 
00096 #define EX_USAGE     64     /* command line usage error */
00097 #define EX_DATAERR   65     /* data format error */
00098 #define EX_NOINPUT   66     /* cannot open input */
00099 #define EX_NOUSER    67     /* addressee unknown */
00100 #define EX_NOHOST    68     /* host name unknown */
00101 #define EX_UNAVAILABLE      69     /* service unavailable */
00102 #define EX_SOFTWARE  70     /* internal software error */
00103 #define EX_OSERR     71     /* system error (e.g., can't fork) */
00104 #define EX_OSFILE    72     /* critical OS file missing */
00105 #define EX_CANTCREAT 73     /* can't create (user) output file */
00106 #define EX_IOERR     74     /* input/output error */
00107 #define EX_TEMPFAIL  75     /* temp failure; user is invited to retry */
00108 #define EX_PROTOCOL  76     /* remote error in protocol */
00109 #define EX_NOPERM    77     /* permission denied */
00110 #define EX_CONFIG    78     /* configuration error */
00111 
00112 #define EX__MAX      78     /* maximum listed value */
00113 
00114 #endif /* sysexits.h */