Main index | Section 3 | Options |
#include <ftw.h>
struct FTW { int base; /* offset of basename into pathname */ int level; /* directory depth relative to starting point */ };
Possible values for the flag passed to fn are:
FTW_F | A regular file. |
FTW_D | A directory being visited in pre-order. |
FTW_DNR | |
A directory which cannot be read. The directory will not be descended into. | |
FTW_DP | A directory being visited in post-order (nftw() only ). |
FTW_NS | A file for which no stat(2) information was available. The contents of the stat structure are undefined. |
FTW_SL | A symbolic link. |
FTW_SLN | |
A symbolic link with a non-existent target (nftw() only ). | |
The ftw() function traverses the tree in pre-order. That is, it processes the directory before the directory's contents.
The maxfds argument specifies the maximum number of file descriptors to keep open while traversing the tree. It has no effect in this implementation.
The nftw() function has an additional flags argument with the following possible values:
FTW_PHYS | Physical walk, do not follow symbolic links. |
FTW_MOUNT | |
The walk will not cross a mount point. | |
FTW_DEPTH | |
Process directories in post-order. Contents of a directory are visited before the directory itself. By default, nftw() traverses the tree in pre-order. | |
FTW_CHDIR | |
Change to a directory before reading it. By default, nftw() will change its starting directory. The current working directory will be restored to its original value before nftw() returns. | |
#include <ftw.h> #include <stdio.h> #include <sysexits.h>int nftw_callback(const char *path, const struct stat *sb, int typeflag, struct FTW *ftw) { char type;
switch(typeflag) { case FTW_F: type = 'F'; break; case FTW_D: type = 'D'; break; case FTW_DNR: type = '-'; break; case FTW_DP: type = 'd'; break; case FTW_NS: type = 'X'; break; case FTW_SL: type = 'S'; break; case FTW_SLN: type = 's'; break; default: type = '?'; break; }
printf("[%c] %s , type, path);
return (0); }
int main(int argc, char **argv) {
if (argc != 2) { printf("Usage %s <directory> , argv[0]); return (EX_USAGE); } else return (nftw(argv[1], nftw_callback, /* UNUSED */ 1, 0)); }
[EINVAL] | |
The maxfds argument is less than 1. | |
FTW (3) | March 12, 2020 |
Main index | Section 3 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
“ | An ASCII character walks into a bar and orders a double. "Having a bad day?" asks the barman. "Yeah, I have a parity error," replies the ASCII character. The barman says, "Yeah, I thought you looked a bit off." | ” |