Eric Blake [eblake@xxxxxxxxxx] 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 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html