view admin/notes/exit-value @ 83565:41aaac7180d5

Merged from emacs@sv.gnu.org Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-708 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-709 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-710 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-711 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-712 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-713 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-714 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-715 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-716 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-717 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-718 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-719 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-720 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-721 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-722 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-723 Merge from emacs--rel--22: lisp/dired-x.el: Revert 2007-04-06 change. * emacs@sv.gnu.org/emacs--devo--0--patch-724 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-725 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-726 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-727 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-728 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-729 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-730 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-731 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-732 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-733 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-734 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-735 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-736 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-737 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-738 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-739 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-740 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-741 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-742 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-743 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--rel--22--base-0 tag of emacs@sv.gnu.org/emacs--devo--0--patch-709 * emacs@sv.gnu.org/emacs--rel--22--patch-1 Sync to CVS tag EMACS_22_BRANCHPOINT * emacs@sv.gnu.org/emacs--rel--22--patch-2 Sync to CVS branch EMACS_22_BASE * emacs@sv.gnu.org/emacs--rel--22--patch-3 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-4 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-5 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-6 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-7 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-8 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-9 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-10 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-11 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-12 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-13 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-217 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-218 Merge from emacs--devo--0, emacs--rel--22 * emacs@sv.gnu.org/gnus--rel--5.10--patch-219 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-220 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-605
author Karoly Lorentey <karoly@lorentey.hu>
date Fri, 11 May 2007 18:24:42 +0000
parents dc9bd6dd0d8d
children
line wrap: on
line source

ttn 2004-05-09

The exit value of a program returning to the shell on unixoid systems is
typically 0 for success, and non-0 (such as 1) for failure.  For vms it is
odd (1,3,5...) for success, even (0,2,4...) for failure.

This holds from the point of view of the "shell" (in quotes because vms has a
different dispatch model that is not explained further here).

From the point of view of the program, nowadays stdlib.h on both type of
systems provides macros `EXIT_SUCCESS' and `EXIT_FAILURE' that should DTRT.

NB: The numerical values of these macros DO NOT need to fulfill the the exit
value requirements outlined in the first paragraph!  That is the job of the
`exit' function.  Thus, this kind of construct shows misunderstanding:

   #ifdef VMS
      exit (1);
   #else
      exit (0);
   #endif

Values aside from EXIT_SUCCESS and EXIT_FAILURE are tricky.



ttn 2004-05-12

Values aside from EXIT_SUCCESS and EXIT_FAILURE can be used to indicate
finer gradations of failure.  If this is the only information available
to the caller, clamping such values to EXIT_FAILURE loses information.
If there are other ways to indicate the problem to the caller (such as
a message to stderr) it may be ok to clamp.  In all cases, it is the
relationship between the program and its caller that must be examined.
[Insert ZAMM quote here.]