Subject: Re: a few minor cleanups to src/share/misc/style
To: None <tech-kern@netbsd.org, tech-userlevel@netbsd.org>
From: Thor Lancelot Simon <tls@rek.tjls.com>
List: tech-userlevel
Date: 03/21/2001 22:28:02
On Wed, Mar 21, 2001 at 07:16:37PM -0800, Chris G. Demetriou wrote:
> Greywolf <greywolf@starwolf.com> writes:
> > Can I ask what the point is of (strongly) suggesting such things as
> > EXIT_SUCCESS and EXIT_FAILURE as opposed to 0 and 1? That just
> > seems such a PITA.
>
> (1) They're more portable. I.e., really, not all systems which support
> 'standard C' use success == 0 and failure == non-zero. Sure, those
> systems aren't really unix, but since KNF already says 0 / 1, it seems
> fairly obvious and non-bad to use the standards-defined exit codes.
>
> (2) They have immediately-obvious meaning. If you're coming up to
> UNIX code for the first time, what do you think: is 0 or 1 success or
> failure? (Why is it intuitively obvious that it should be different
> than, say, true or false booleans?) EXIT_* makes the code a bit more
> self-documenting.
>
>
> > The other thing is what if you need to denote different conditions
> > via different exit stats (as in success, failure-because-of-runtime-
> > criteria-mismatch, failure-because-of-resource-unavailability)?
> > i.e., what if it's possible for something to fail in several different
> > ways? I think it'd be the polite thing to do to provide (and document)
> > several different exit codes.
>
> That's been "prohibited" by KNF forever.
>
> As with many things, if there's a good, strong reason to do otherwise,
> then it's reasonable. But for random failures of a program, there's
> no great reason to differentiate.
Besides, we have <sysexits.h> and it would be nice to at least use it consistently,
instead of making up Special New Exit Codez for every single program.
--
Thor Lancelot Simon tls@rek.tjls.com
And now he couldn't remember when this passion had flown, leaving him so
foolish and bewildered and astray: can any man?
William Styron