Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Jul 2003 22:43:27 -0700
From:      Wes Peters <wes@softweyr.com>
To:        Matthew Emmerton <matt@compar.com>, Terry Lambert <tlambert2@mindspring.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: RFC: Change to sys_errlist
Message-ID:  <200307102243.27228.wes@softweyr.com>
In-Reply-To: <20030710162030.R32209-100000@skippyii.compar.com>
References:  <20030710162030.R32209-100000@skippyii.compar.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 10 July 2003 01:21 pm, Matthew Emmerton wrote:
> On Sun, 6 Jul 2003, Terry Lambert wrote:
> > Matthew Emmerton wrote:
> > > This is a RFC on a change to sys_errlist for errno = 0.
> > >
> > > On Linux, if perror() or strerror() is called with errno = 0, the
> > > resulting string is "Success".
> > > On FreeBSD, the resulting string is "Unknown error: 0".
> > >
> > > I think that FreeBSD's output is unintentionally confusing, as
> > > errno = 0 implies success.
> > >
> > > The following patch will change the output to the Linux behaviour.
> > >
> > > I appreciate any comments.
> >
> > Actually, I ran into a situation on MacOS X the other day that had
> > a system call with a -1 return code with an errno == 0.
> >
> > I would personally like to distinguish this case, if only for the
> > purpose of catching kernel errors.  Saying "Success" when in fact
> > the system call is returning -1 is a bogus thing to do.
>
> Agreed.  I thought this over and read some specs and believe our way is
> the right way.

In point of fact, errno == 0 does NOT mean "Success", it means "WTF?".  0 
isn't a valid errno, so no meaning can be gleaned from errno == 0 any 
more than it could be gleaned from errno == 0xb00bface or errno == 
6.023e23.

-- 

        Where am I, and what am I doing in this handbasket?

Wes Peters                                               wes@softweyr.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200307102243.27228.wes>