[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bash: Correct usage of F_SETFD
From: |
Jamie Lokier |
Subject: |
Re: bash: Correct usage of F_SETFD |
Date: |
Wed, 24 Nov 2010 01:17:16 +0000 |
User-agent: |
Mutt/1.5.13 (2006-08-11) |
Eric Blake wrote:
> On 11/22/2010 03:16 PM, Chet Ramey wrote:
> >> include/filecntl.h in bash-4.1 has following:
> >>
> >> #define SET_CLOSE_ON_EXEC(fd) (fcntl ((fd), F_SETFD, FD_CLOEXEC))
> >>
> >> Is that really the correct/intended usage of F_SETFD ?
> >
> > F_SETFD Set the close-on-exec flag associated with fildes to
> > the low order bit of arg (0 or 1 as above).
> >
> >> If kernel ever adds a new flag to the fd, this would end up clearing the
> >> other new flag right ?
> >>
> >> Shouldn't bash use F_GETFD to get the current flags and set/clear just
> >> the FD_CLOEXEC bit ?
> >
> > I suppose it would matter if there are systems that have more than one
> > flag value.
>
> In practice, there aren't any such systems; but POSIX warns that current
> practice is no indicator of future systems, and that read-modify-write
> is the only way to use F_SETFD.
There are so many programs using F_SETFD the way Bash does, that it
would be quite brave (or stupid) to add another flag.
-- Jamie