55463
|
1 ttn 2004-05-09
|
|
2
|
|
3 The exit value of a program returning to the shell on unixoid systems is
|
|
4 typically 0 for success, and non-0 (such as 1) for failure. For vms it is
|
|
5 odd (1,3,5...) for success, even (0,2,4...) for failure.
|
|
6
|
|
7 This holds from the point of view of the "shell" (in quotes because vms has a
|
|
8 different dispatch model that is not explained further here).
|
|
9
|
|
10 From the point of view of the program, nowadays stdlib.h on both type of
|
|
11 systems provides macros `EXIT_SUCCESS' and `EXIT_FAILURE' that should DTRT.
|
|
12
|
|
13 NB: The numerical values of these macros DO NOT need to fulfill the the exit
|
|
14 value requirements outlined in the first paragraph! That is the job of the
|
|
15 `exit' function. Thus, this kind of construct shows misunderstanding:
|
|
16
|
|
17 #ifdef VMS
|
|
18 exit (1);
|
|
19 #else
|
|
20 exit (0);
|
|
21 #endif
|
|
22
|
|
23 Values aside from EXIT_SUCCESS and EXIT_FAILURE are tricky.
|