Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Jun 2000 00:28:03 -0400 (EDT)
From:      Chuck Robey <chuckr@picnic.mat.net>
To:        "Bohne, Peter" <Peter.Bohne@hboc.com>
Cc:        "'FengYue'" <fengyue@bluerose.windmoon.nu>, "'andrew@ugh.net.au'" <andrew@ugh.net.au>, hackers@FreeBSD.ORG
Subject:   RE: libc_r/_read(), should the errno be reset to 0?
Message-ID:  <Pine.BSF.4.21.0006250025020.318-100000@picnic.mat.net>
In-Reply-To: <35BEC7ED0A15D21199F000805F6F6D6A01CB00E7@bldexc01ntms.clinicom.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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?Pine.BSF.4.21.0006250025020.318-100000>