Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 4 Jul 2003 16:34:06 -0400
From:      "Matthew Emmerton" <matt@compar.com>
To:        "John-Mark Gurney" <gurney_j@efn.org>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: RFC: Change to sys_errlist
Message-ID:  <002601c3426b$9d3a3f80$1200a8c0@gsicomp.on.ca>
References:  <001901c34256$95e4db10$1200a8c0@gsicomp.on.ca> <20030704185032.GB605@funkthat.com>

next in thread | previous in thread | raw e-mail | index | archive | help

----- Original Message ----- 
From: "John-Mark Gurney" <gurney_j@efn.org>
To: "Matthew Emmerton" <matt@gsicomp.on.ca>
Cc: <freebsd-hackers@freebsd.org>
Sent: Friday, July 04, 2003 2:50 PM
Subject: Re: RFC: Change to sys_errlist


> Matthew Emmerton wrote this message on Fri, Jul 04, 2003 at 14:03 -0400:
> > 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.
>
> This is not good.  This will just encourge more programers to not properly
> test return values.  Read man 2 errno says: "Successful calls never set
> errno;", so this depends upon the programmer initalizing errno to 0
> before they make their call.  If they are already so poor as to be
> calling perror, etc with errno 0, then I doubt that we can depend upon
> them initalizing errno to 0 and giving consistant results.

You're right.  Furthermore, SUSv3 indicates that errno is a positive
integer; this presumably excludes 0 so our existing implementation is fine.

I guess I'll have to bring this up with the Linux folks and see if they'll
change.

--
Matt Emmerton



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?002601c3426b$9d3a3f80$1200a8c0>