Date: Mon, 26 Jun 2000 11:50:04 -0400 From: "Bohne, Peter" <Peter.Bohne@hboc.com> To: 'Chuck Robey' <chuckr@picnic.mat.net> Cc: hackers@FreeBSD.ORG Subject: RE: libc_r/_read(), should the errno be reset to 0? Message-ID: <35BEC7ED0A15D21199F000805F6F6D6A01CB00F4@bldexc01ntms.clinicom.com>
next in thread | raw e-mail | index | archive | help
My interest here was mainly to convey the fact that errno is not automatically reset to 0. I agree that there should be no need to check it if your system call succeeds. No arguments there. The original poster's question, however, was inquiring about an automatic reset of errno. In general, I've always held it to be good policy to reset errno before I make a call that can modify it if I plan to check it after the call. Regardless of OS - FreeBSD, HP-UX, AIX, what have you. pete > -----Original Message----- > From: Chuck Robey [mailto:chuckr@picnic.mat.net] > Sent: Saturday, June 24, 2000 10:28 PM > To: Bohne, Peter > Cc: 'FengYue'; 'andrew@ugh.net.au'; hackers@FreeBSD.ORG > Subject: RE: libc_r/_read(), should the errno be reset to 0? > > > On Fri, 23 Jun 2000, Bohne, Peter wrote: > > > True enough. That's the best advice. However, your > original post indicated > > an expectation on your part that errno would be somehow > automatically reset > > to 0 before a system call, which is definitely *not* the > case. You have to > > clear it - the kernel does not do it for you. > > Why would you bother to clear it? You don't check errno to determine > fail/success, you check the function return. If it returns fail, then > errno is going to be correct whether or not you bothered to > reset it or > not. Setting it to zero might give you a warm fuzzy feeling, but if > you're correctly detected errors, it's not going to change anything. > > If anyone is detecting the value of errno as an indication of > pass/fail, > they're going to be disappointed. > > > > > pete > > > > > -----Original Message----- > > > From: FengYue [mailto:fengyue@bluerose.windmoon.nu] > > > Sent: Friday, June 23, 2000 11:08 AM > > > To: Bohne, Peter > > > Cc: 'andrew@ugh.net.au'; hackers@FreeBSD.ORG > > > Subject: RE: libc_r/_read(), should the errno be reset to 0? > > > > > > > > > > > > Wait, that's not going to do anything, the errno is set inside the > > > _thread_sys_read(). But I agree with Andrew, why bother to check > > > errno if read() returns no error. > > > > > > On Fri, 23 Jun 2000, Bohne, Peter wrote: > > > > > > > This means that *you* should set errno to 0 just before you > > > do the read > > > > call. At this point, you no longer care what it had > been before. > > > > -- > > > > pete > > > > > > > > ====== pbohne at hboc dot com > > > > Peter Bohne -- McKessonHBOC -- Louisville, CO > > > > Work: 303-926-2218 -- Cell: 303-817-8312 -- Home Ofc: > 970-586-9031 > > > > ====== "Very funny, Scottie. Now beam down my clothes!" > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > From: andrew@ugh.net.au [mailto:andrew@ugh.net.au] > > > > > Sent: Friday, June 23, 2000 3:02 AM > > > > > To: FengYue > > > > > Cc: hackers@FreeBSD.ORG > > > > > Subject: Re: libc_r/_read(), should the errno be reset to 0? > > > > > > > > > > > > > > > > > > > > > > > > > On Fri, 23 Jun 2000, FengYue wrote: > > > > > > > > > > > My question is, shouldn't it be reset to zero? > > > > > > > > > > From intro(2): > > > > > > > > > > Successful calls never set errno; once set, it remains until > > > > > another error > > > > > occurs. It should only be examined after an error. > > > > > > > > > > Andrew > > > > > > > > > > > > > > > > > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > > > > > with "unsubscribe freebsd-hackers" in the body of the message > > > > > > > > > > > > > > > > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > > with "unsubscribe freebsd-hackers" in the body of the message > > > > -------------------------------------------------------------- > -------------- > Chuck Robey | Interests include C & Java > programming, FreeBSD, > chuckr@picnic.mat.net | electronics, communications, and > signal processing. > > New Year's Resolution: I will not sphroxify gullible people > into looking up > fictitious words in the dictionary. > -------------------------------------------------------------- > -------------- > > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?35BEC7ED0A15D21199F000805F6F6D6A01CB00F4>