ftw.3c (2010 09)
f
ftw(3C) ftw(3C)
performance, depth should be at least as large as the number of levels in the tree.
nftw() is similar to ftw() except that it takes the additional argument flags, and does not report or
enter a directory which has already been visited during the walk. The flags field is the inclusive OR of
the following values, as defined in the
<ftw.h> header file:
FTW_PHYS If set, nftw() does a physical walk. It will not follow symbolic links, but will fol-
low hard links.
If clear,
nftw() follows both symbolic and hard links. In addition, if the
UNIX95
environment is defined, no object will be reported to fn more than once. Classic HP
nftw() behavior will report a file as many times as it is referenced.
FTW_MOUNT If set, nftw() will only report files in the same file system as path . (See
WARN-
INGS for one exception involving loopback file systems (LOFS)).
If clear,
nftw() will report all objects encountered in the walk.
FTW_DEPTH If set, nftw() performs a depth-first search. A directory’s contents will be reported
before the directory is reported to fn.
If clear, the directory will be reported before its descendants.
FTW_CHDIR If set, the walk does a
chdir() (see chdir (2)) to each directory before reading its
contents. At the time a directory is reported to fn, the current working directory
will be the parent of the reported directory. A directory must have both read and
execute permissions, otherwise the directory is reported as a
FTW_DNR object, no
chdir() will be done and it will not be entered.
If clear,
nftw() will not alter the process’ current working directory, and the direc-
tory only needs read permission to be reported as a FTW_D or FTW_DP object.
FTW_SERR If set and any lstat() or stat() failure occurs, fn is called with the FTW_NS
object flag and the walk continues.
If clear and
lstat() or stat() fails due to lack of permissions, fn is called with
the FTW_NS object type. If the UNIX95 environment is defined, the walk contin-
ues. The HP classic behavior will terminate the walk and return -1. For any error
other than permissions, or any error from other system calls such as opendir (3C) or
readdir (3C), nftw() does not call fn, terminates the walk and returns -1.
nftw() calls fn with four arguments for each object reported. The first argument is the path name of
the file, directory, or symbolic link. The second argument is a pointer to a stat structure (see lstat (2))
containing information about the object. The third argument is an integer giving additional information
as follows:
FTW_F The object is a file.
FTW_D The object is a directory.
FTW_DP The object is a directory and subdirectories have been visited. This can be passed to
fn only if
FTW_DEPTH is specified.
FTW_SL The object is a symbolic link. This can be passed to fn only if FTW_PHYS is
specified.
FTW_SLN The object is a symbolic link that does not point to an existing object. This can be
passed to fn only if FTW_PHYS is not specified.
FTW_DNR The object is a directory that cannot be read, or does not have execute permissions
when FTW_CHDIR is specified. The function fn is not called for any of the
directory’s descendants.
FTW_NS lstat() or stat() failed on the object. The contents of the stat structure
passed to fn are undefined. If the failure occurred due to lack of permissions,
errno is set to [EACCES]. If the UNIX95 environment is defined, the walk will
always continue after permissions errors. For classic HP behavior, the FTW_SERR
flag must be set for the walk to continue.
Note that this behavior differs from
ftw().
The fourth argument is different for the default environment and the
UNIX95 environment. For the
default environment, the fourth argument is a structure FTW. For the UNIX95 environment, the fourth
2 Hewlett-Packard Company − 2 − HP-UX 11i Version 3: September 2010