----- Original Message ----- 
From: "John-Mark Gurney" <[EMAIL PROTECTED]>
To: "Matthew Emmerton" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
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

_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to