[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/admin/notes/exit-value [emacs-unicode-2]
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/admin/notes/exit-value [emacs-unicode-2] |
Date: |
Mon, 28 Jun 2004 03:34:26 -0400 |
Index: emacs/admin/notes/exit-value
diff -c /dev/null emacs/admin/notes/exit-value:1.2.2.1
*** /dev/null Mon Jun 28 07:30:40 2004
--- emacs/admin/notes/exit-value Mon Jun 28 07:29:27 2004
***************
*** 0 ****
--- 1,35 ----
+ 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.]
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/admin/notes/exit-value [emacs-unicode-2],
Miles Bader <=