The idea here is to use predefined exit values for various error conditions.
When you see a unix command return an error code like 64, chances are the exit codes conform to the sysexits model. sysexits is a model, or a suggestion. But it does allow the program to convey intelligence when an error occurs.
For example the diff command (by POSIX standards) has it's own little protocol. It does not use sysexits because in part the information ( or meaning ) associated with two return codes of the three are not errors.
This parallels in part alister's comment about the "range" of return values.
Last edited by jim mcnamara; 11-06-2012 at 09:10 PM..
i just finished a project for a c++ class that i wrote at home on my computer, compiled with gcc. when i brought the code into school it would not compile, it would complain that cannot call main() function. at school we use ancient borland c++ from 1995. anyway my program has 20 different... (3 Replies)
What is the sytax to return an int from C program main back to calling shell?
#!/usr/bin/ksh
typeset -i NO_RECS
$NO_RECS=process_file
# Process file is a C program that is set up to return an int from main. The
#program complies with no issues, but an error is generated when the... (3 Replies)
Hi,
I have a main loop which calls a sub loop, which finally returns to the main loop itself. The main loop runs when a flag is set. Now, I have a signal handler for SIGINT, which resets the flag and thus stops the main loop. Suppose I send SIGINT while the program is in subloop, I get an error... (1 Reply)
Hi,
I am having issue with awk command . This command is running in the command prompt but inside a shell script.
awk -F'| ' 'int($1)==$1 && int($3) ==$3' int_check.txt
$cat int_check.txt
123|abc|123x
234|def|345
When i run it inside a shell script i am getting the error
"bailing... (5 Replies)
Hello, I have the below perl function int to return the integer value from the expression but it is not. I am not sure if something misses out here. Any help on this? Thanks in advance.
# Code sample Start
my $size = int (`1134 sample_text_here`);
print "$size \n";
# Code end
----------... (0 Replies)
Hi,
from the manual
listen(2): listen for connections on socket - Linux man page
It has a parameter called backlog and it limits the maximum length of queue of pending list.
If I set backlog to 128, is it means no more than 128 packets can be handled by server?
If I have three... (3 Replies)
Hi friends,
when I am passing arguments to main, I want another function to be able to have access to that function, the problem is that I am creating athread, which has a function like void *xyz(void *), how can pass the refernce of argv to this function, if you see my program, you will better... (2 Replies)
Hi. I have some code, that for some reason, I could not post it here in this post. Here's the address for it:
#if 0 shc Version 4.0.1, Generic Shell Script Compiler GNU GPL Version 3 Md - Pastebin.com
First off, I used "shc" to convert the code from shell script to C.
And The... (6 Replies)
Discussion started by: ignatius
6 Replies
LEARN ABOUT MOJAVE
sysexits
SYSEXITS(3) BSD Library Functions Manual SYSEXITS(3)NAME
sysexits -- preferable exit codes for programs
SYNOPSIS
#include <sysexits.h>
DESCRIPTION
According to style(9), it is not a 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 codes is approximately as follows:
EX_USAGE (64) The command was used incorrectly, e.g., with the wrong number of arguments, a bad flag, a 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
catchall 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 as possi-
ble.
EX_OSERR (71) An operating system error has been detected. This is intended to be used for such things as ``cannot fork'', ``cannot
create pipe'', or the like. It includes things like getuid returning a user that does not exist in the passwd file.
EX_OSFILE (72) Some system file (e.g., /etc/passwd, /var/run/utmp, etc.) 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 (e.g.)
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 parenthesis for easy reference.
SEE ALSO exit(3), style(9)HISTORY
The sysexits file appeared somewhere after 4.3BSD.
AUTHORS
This man page has been written by Jorg Wunsch after the comments in <sysexits.h>.
BUGS
The choice of an appropriate exit value is often ambiguous.
BSD March 31, 1996 BSD