On Sun, Oct 16, 2011 at 01:23:38AM -0400, Christos Zoulas wrote: ... > | > close on exec fixes: > | > - open + fcntl -> open O_CLOEXEC ... > Thanks, but then shouldn't we also add: > > #if O_CLOEXEC == 0 > (void)fcntl(sp->fts_rfd, F_SETFD, FD_CLOEXEC); > #endif > > after the open?
In which case it would be cleaner to have something like: #if define(O_CLOEXEC) && O_CLOEXEC != 0 #define open_cloexec(name, mode) open(name, (mode) | O_CLOEXEC) #else static inline int open_cloexec(const char *name, unsigned int mode) { int fd = open(name, mode); if (fd >= 0) fcntl(fd, F_SETFD, 0); return fd; } #endif and the use open_clowxec() in the code. David -- David Laight: da...@l8s.co.uk