summaryrefslogtreecommitdiff
path: root/lib/cloexec.h
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2006-01-17 17:24:14 +0000
committerJim Meyering <jim@meyering.net>2006-01-17 17:24:14 +0000
commitc1994c16c24f860722d2bba529fe99041a774ad6 (patch)
tree4db3cfe28c5ca822cf7ec0e24197aa44de19e574 /lib/cloexec.h
parent739de8914fae814e11198abe20f629cbf50a7586 (diff)
downloadcoreutils-c1994c16c24f860722d2bba529fe99041a774ad6.tar.xz
Rewrite fts.c not to change the current working directory,
by using openat, fstatat, fdopendir, etc.. [! _LIBC]: Include "openat.h" and "unistd--.h". (HAVE_OPENAT_SUPPORT): Define. [_LIBC] (fchdir): Don't undef or define; no longer used. (FCHDIR): Define in terms of cwd_advance_fd rather than fchdir. Now, this `function' always succeeds, and consumes its file descriptor parameter -- so callers must not close such FDs. Update callers. (diropen_fd, opendirat, cwd_advance_fd): New functions. (diropen): Add parameter, SP. Adjust all callers. Implement using diropen_fd, rather than open. (fts_open): Initialize new member, fts_cwd_fd. Remove fts_rft-setting code. (fts_close): Close fts_cwd_fd, if necessary. (__opendir2): Define in terms of opendir or opendirat, depending on whether the FST_NOCHDIR flag is set. (fts_build): Since fts_safe_changedir consumes its FD, and since this code must do `closedir(dirp)', dup the dirfd(dirp) argument, and close the dup'd file descriptor upon failure. (fts_stat): Use fstatat(...AT_SYMLINK_NOFOLLOW) in place of lstat. (fts_safe_changedir): Tweak semantics to reflect that this function now calls cwd_advance_fd and hence consumes its FD argument.
Diffstat (limited to 'lib/cloexec.h')
0 files changed, 0 insertions, 0 deletions