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>