Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Jun 2009 14:49:38 -0600
From:      Colin Percival <cperciva@freebsd.org>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org
Subject:   Re: svn commit: r194262 - in head: include lib/libc/sys sys/compat/freebsd32 sys/kern tools/regression/file/closefrom
Message-ID:  <4A36B3E2.7060309@freebsd.org>
In-Reply-To: <200906152038.n5FKctaR001026@svn.freebsd.org>
References:  <200906152038.n5FKctaR001026@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
John Baldwin wrote:
>   One difference from other *BSD is that this closefrom() does not
>   fail with any errors.  In practice, while the manpages for NetBSD and
>   OpenBSD claim that they return EINTR, they ignore internal errors from
>   close() and never return EINTR.  DFly does return EINTR, but for the common
>   use case (closing fd's prior to execve()), the caller really wants all
>   fd's closed and returning EINTR just forces callers to call closefrom() in
>   a loop until it stops failing.

Wouldn't it be better for portability if closefrom(2) is defined to return an
int, even if the value returned is always zero?  Otherwise people who want to
write code which works on all BSDs end up having to do something like
#ifdef __FreeBSD__
	closefrom(x);
#else
	while (closefrom(x))
		continue;
#endif

-- 
Colin Percival
Security Officer, FreeBSD | freebsd.org | The power to serve
Founder / author, Tarsnap | tarsnap.com | Online backups for the truly paranoid



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A36B3E2.7060309>