cottrell@NBS-VMS.ARPA (COTTRELL, JAMES) (02/28/86)
/* >> is Me, > is Andrew Koenig <ark@alice.uucp> > > The point is that the VMS C implementation must map its exit codes into > > what the operating system expects. When the programmer says `exit 0', he > > means `I succeeded'. The exit() function must support this. > > No way! exit(n) means "terminate and send the number n back to the system." Referring to the infamous `April 30 1985' ANSI C Draft (I geuss the NIC doesn't have their copy online yet :-), Section D.10.4.2, last three lines, it says, "Finally, control is returned to the environment. If the value of status is zero, the status returned is successful termination; otherwise an implementation-defined form of the status unsuccessful termination is returned". Whew! Quoting that was worse than reading it. I would be surprised if the standard has changed on this point. The Point Is, if `successful termination' means rewinding all the tapedrives, printing the American flag on the laser printer, or aborting the space shuttle, when I say `exit(0)', THAT IS WHAT MUST HAPPEN!!! As you well know, a function _exit(int status) exists to do just what you mention. On VMS, after cleanup, exit(int status) should call _exit(!status) in order to conform. I want my scripts to work right! You see, Doug, not everyone who disagrees with Andy is a turkey. jim cottrell@nbs */ ------