bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bash: Correct usage of F_SETFD


From: Sukadev Bhattiprolu
Subject: Re: bash: Correct usage of F_SETFD
Date: Mon, 22 Nov 2010 16:04:46 -0800
User-agent: Mutt/1.5.18 (2008-05-17)

Eric Blake [eblake@redhat.com] 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).

Is that the POSIX definition ? Following man page does not limit F_SETFD to
FD_CLOEXEC:

        http://www.kernel.org/doc/man-pages/online/pages/man2/fcntl.2.html

        F_SETFD (long)
                    Set the file descriptor flags to the value specified by arg.
| > 
| >> 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.

Yes, that seems to make more sense.

Sukadev



reply via email to

[Prev in Thread] Current Thread [Next in Thread]