Home | History | Annotate | Download | only in include
      1 /**
      2  * This file is part of the mingw-w64 runtime package.
      3  * No warranty is given; refer to the file DISCLAIMER within this package.
      4  */
      5 
      6 #ifndef _FTW_HXX
      7 #define	_FTW_HXX
      8 
      9 #include <sys/types.h>
     10 #include <sys/stat.h>
     11 
     12 #ifdef __cplusplus
     13 extern "C" {
     14 #endif
     15 
     16   struct FTW {
     17     int base;
     18     int level;
     19   };
     20 
     21   /* A regular file.  */
     22 #define FTW_F 0
     23   /* A directory.  */
     24 #define FTW_D 1
     25   /* An unreadable directory.  */
     26 #define FTW_DNR	2
     27   /* An unstatable file.  */
     28 #define FTW_NS 3
     29   /* A symbolic link (not supported).  */
     30 #define FTW_SL 4
     31   /* A directory (all subdirs are visited). */
     32 #define FTW_DP 5
     33   /* A symbolic link naming non-existing file (not supported).  */
     34 #define FTW_SLN 6
     35 
     36   /* Do a physical walk (ignore symlinks).  */
     37 #define FTW_PHYS 1
     38   /* Do report only files on same device as the argument (partial supported).  */
     39 #define FTW_MOUNT 2
     40   /* Change to current directory while processing (unsupported).  */
     41 #define FTW_CHDIR 4
     42   /* Do report files in directory before the directory itself.*/
     43 #define FTW_DEPTH 8
     44   /* Tell callback to return FTW_* values instead of zero to continue and non-zero to terminate.  */
     45 #define FTW_ACTIONRETVAL 16
     46 
     47   /* Continue with next sibling or with the first child-directory.  */
     48 #define FTW_CONTINUE 0
     49   /* Return from ftw or nftw with FTW_STOP as return value.  */
     50 #define FTW_STOP 1
     51   /* Valid only for FTW_D: Don't walk through the subtree. */
     52 #define FTW_SKIP_SUBTREE 2
     53   /* Continue with FTW_DP callback for current directory (if FTW_DEPTH) and then its siblings.  */
     54 #define FTW_SKIP_SIBLINGS 3
     55 
     56   int ftw (const char *, int (*) (const char *, const struct stat *, int), int);
     57   int ftw64 (const char *, int (*) (const char *, const struct stat64 *, int), int);
     58 
     59   int nftw (const char *, int (*) (const char *, const struct stat *, int , struct FTW *), int, int);
     60   int nftw64 (const char *, int (*) (const char *, const struct stat64 *, int , struct FTW *), int, int);
     61 
     62 #ifdef __cplusplus
     63 }
     64 #endif
     65 
     66 #endif
     67