From owner-freebsd-hackers@FreeBSD.ORG Sun Feb 6 22:16:01 2005 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 758F016A4CE for ; Sun, 6 Feb 2005 22:16:01 +0000 (GMT) Received: from gau.lava.net (gau.lava.net [64.65.64.28]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4025E43D31 for ; Sun, 6 Feb 2005 22:16:01 +0000 (GMT) (envelope-from julian@lava.net) Received: from [64.65.85.10] (taurus.cesta.com [64.65.85.10]) by gau.lava.net (Postfix) with ESMTP id 82E421715C; Sun, 6 Feb 2005 12:16:00 -1000 (HST) Message-ID: <4206971F.1020005@lava.net> Date: Sun, 06 Feb 2005 12:15:59 -1000 From: Julian Cowley User-Agent: Mozilla Thunderbird 1.0 (X11/20041206) X-Accept-Language: en-us, en MIME-Version: 1.0 To: "M. Warner Losh" References: <20050206132124.GA746@daemon.unete.cl> <20050206.142319.22504831.imp@bsdimp.com> In-Reply-To: <20050206.142319.22504831.imp@bsdimp.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: freebsd-hackers@FreeBSD.ORG cc: dmw@unete.cl Subject: Re: [Hackers] Re: any way to reset errno? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Feb 2005 22:16:01 -0000 M. Warner Losh wrote: > In message: <20050206132124.GA746@daemon.unete.cl> > Daniel Molina Wegener writes: > : Any way to reset errno? > > errno = 0; > > Routines that return an error status in errno generally don't set it > to 0 to mean no error. Which implies errno should never need to be set to zero since the convention is to only look at errno if a system call fails. The only time errno needs to be explicitly set (to any value) is when preserving the error value between system calls. Such as: if (write(fd, buf, len) < 0) { int saved_errno; saved_errno = errno; close(fd); /* ignore any error */ errno = saved_errno; return -1; }