diff -r 000000000000 -r e4d67989cc36 genericopenlibs/openenvcore/include/ftw.dosc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/genericopenlibs/openenvcore/include/ftw.dosc Tue Feb 02 02:01:42 2010 +0200 @@ -0,0 +1,198 @@ +/** @file ../include/ftw.h +@internalComponent +*/ + +/** @fn ftw(const char *path, int (*fn)(const char *, const struct stat *, int), int nfds) +@param path +@param fn +@param nfds +@return If the tree is exhausted, ftw() shall return 0. +If the function pointed to by fn returns a non-zero value, ftw() shall stop its tree traversal and +return whatever value was returned by the function pointed to by fn. +If ftw() detects an error, it shall return -1 and set errno to indicate the error. + +The ftw() function shall recursively descend the directory hierarchy rooted in path. +For each object in the hierarchy, ftw() shall call the function pointed to by fn, +passing it a pointer to a null-terminated character string containing the name of the object, +a pointer to a stat structure containing information about the object, and an integer.Possible values of the integer are: +FTW_D + For a directory. +FTW_DNR + For a directory that cannot be read. +FTW_F + For a file. +FTW_SL + For a symbolic link (but see also FTW_NS below). +FTW_NS + For an object other than a symbolic link on which stat() could not successfully be executed. + If the object is a symbolic link and stat() failed, + it is unspecified whether ftw() passes FTW_SL or FTW_NS to the user-supplied function. + +The argument nfds should be in the range [1, {OPEN_MAX}]. + +Errors: +[EACCES] + Search permission is denied for any component of path or read permission is denied for path. +[ELOOP] + A loop exists in symbolic links encountered during resolution of the path argument. +[ENAMETOOLONG] + The length of the path argument exceeds {PATH_MAX} or a pathname component is longer than {NAME_MAX}. +[ENOENT] + A component of path does not name an existing file or path is an empty string. +[ENOTDIR] + A component of path is not a directory. +[EOVERFLOW] + A field in the stat structure cannot be represented correctly in the current programming environment + for one or more files found in the file hierarchy. + +Examples: +@code +/* Detailed description: Sample usage of ftw system call + * Preconditions: Function fn with the specified prototype should be defined and + * should have atleast two objects in the current working directory. + */ +#include +#include +#include + +if (ftw(".", fn, 2) != 0) { + perror("ftw"); exit(2); +} +else +{ + printf("ftw call succeded"); +} + +@endcode + Output +@code +ftw call succeded + +@endcode +@see stat() + + +@capability Deferred @ref RFs::Entry(const TDesC16&, TEntry&) + +@publishedAll +@externallyDefinedApi +*/ + +/** @fn ftw64(const char *path, int (*fn)(const char *, const struct stat64 *, int), int nfds) +@param path +@param fn +@param nfds +@return If the tree is exhausted, ftw64() shall return 0. +If the function pointed to by fn returns a non-zero value, ftw64() shall stop its tree traversal and +return whatever value was returned by the function pointed to by fn. +If ftw64() detects an error, it shall return -1 and set errno to indicate the error. + +For full documentation see: http://www.unix.org/version2/whatsnew/lfs20mar.html#3.0 + +@see ftw() + +@publishedAll +@externallyDefinedApi +*/ + +/** @def FTW_F + +Regular File. Valid flags for the 3rd argument to the function that is passed as the second argument to ftw(3) and nftw(3). + +@publishedAll +@externallyDefinedApi +*/ + +/** @def FTW_D + +Valid flags for the 3rd argument to the function that is passed as the second argument to ftw(3) and nftw(3). +Directory. + +@publishedAll +@externallyDefinedApi +*/ + +/** @def FTW_DNR + +Valid flags for the 3rd argument to the function that is passed as the second argument to ftw(3) and nftw(3). +Directory without read permission. + +@publishedAll +@externallyDefinedApi +*/ + +/** @def FTW_DP + +Valid flags for the 3rd argument to the function that is passed as the second argument to ftw(3) and nftw(3). +Directory with subdirectories visited. A file on which stat could not successfully be +executed. + + +@publishedAll +@externallyDefinedApi +*/ + +/** @def FTW_NS + +Valid flags for the 3rd argument to the function that is passed as the second argument to ftw(3) and nftw(3). +A file on which stat could not successfully be executed. + + +@publishedAll +@externallyDefinedApi +*/ + +/** @def FTW_SL + +Valid flags for the 3rd argument to the function that is passed as the second argument to ftw(3) and nftw(3). +Symbolic link. + +@publishedAll +@externallyDefinedApi +*/ + +/** @def FTW_SLN + +Valid flags for the 3rd argument to the function that is passed as the second argument to ftw(3) and nftw(3). +Sym link that names a nonexistent file. + +@publishedAll +@externallyDefinedApi +*/ + +/** @def FTW_PHYS + +Flags for use as the 4th argument to nftw(3). These may be ORed together. +Physical walk, don't follow sym links. + +@publishedAll +@released +*/ + +/** @def FTW_MOUNT + +Flags for use as the 4th argument to nftw(3). These may be ORed together. +The walk does not cross a mount point. + +@publishedAll +@released +*/ + +/** @def FTW_DEPTH + +Flags for use as the 4th argument to nftw(3). These may be ORed together. +Subdirs visited before the dir itself. + +@publishedAll +@released +*/ + +/** @def FTW_CHDIR + +Flags for use as the 4th argument to nftw(3). These may be ORed together. +Change to a directory before reading it. + +@publishedAll +@released +*/ +