Most
UN*X programs signal their termination status by means of the exit code (also called 'return status', 'return value', 'exit status' or 'status code').
By convention, 0 means success and any other number denotes that some error has occurred. Using the
C #defines EXIT_SUCCESS and EXIT_FAILURE is slightly more portable (in particular,
VMS seems to use a different convention).
The
C function 'exit()' takes an
integer value, just as the return value of main(), which contains the exit code in the lower eight bits (
octet,
byte). You get the whole int from a call to
wait(), though.
Here's a typical mini-
main():
#include <stdio.h>
int main( int argc, char *argv ) {
if( argc > 1 ) {
printf( stderr, "we take no arguments!" );
return -1;
}
return 0;
}
a
bash script will signal its exit code using
exit 0
When writing a
bash script, you can find the exit code of the command you last executed in the variable
$?.