Annotation of researchv10dc/man/man3/ftw.3, revision 1.1

1.1     ! root        1: .TH FTW 3
        !             2: .CT 2 dirs
        !             3: .SH NAME
        !             4: ftw \- file tree walk
        !             5: .SH SYNOPSIS
        !             6: .nf
        !             7: .B #include <ftw.h>
        !             8: .PP
        !             9: .B int ftw(path, fn, depth)
        !            10: .B char *path;
        !            11: .B int (*fn)();
        !            12: .B int depth;
        !            13: .PP
        !            14: .B #include <sys/types.h>
        !            15: .B #include <sys/stat.h>
        !            16: .PP
        !            17: .IB fn "(name, statb, code, S)"
        !            18: .B char *name;
        !            19: .B struct stat *statb;
        !            20: .B struct FTW *S;
        !            21: .fi
        !            22: .SH DESCRIPTION
        !            23: .I Ftw
        !            24: recursively descends the directory hierarchy
        !            25: rooted in
        !            26: .IR path .
        !            27: For each entry in the hierarchy,
        !            28: .I ftw
        !            29: calls
        !            30: .IR fn ,
        !            31: passing it information about the entry:
        !            32: a pointer to a null-terminated pathname
        !            33: string, a pointer to a
        !            34: .B stat
        !            35: structure (see
        !            36: .IR stat (2)),
        !            37: and a pointer to the following structure.
        !            38: .PP
        !            39: .EX
        !            40: .ta \w'struct 'u +\w'int level  'u
        !            41: struct FTW {
        !            42:        int quit;       \fRsee below\fP
        !            43:        int base;       &name[base] \fRpoints to basename\fP
        !            44:        int level;      \fRrecursion level (initially 0)\fP
        !            45: };
        !            46: .EE
        !            47: .LP
        !            48: Possible values of
        !            49: .IR code ,
        !            50: defined in
        !            51: .FR <ftw.h> ,
        !            52: are
        !            53: .TF FTW_DNR
        !            54: .PD 0
        !            55: .TP
        !            56: .B FTW_D
        !            57: Entry is a directory (before visiting descendants).
        !            58: .TP
        !            59: .B FTW_DP
        !            60: Entry is a directory (after visiting descendants).
        !            61: .TP
        !            62: .B FTW_SL
        !            63: Entry is a symbolic link.
        !            64: .TP
        !            65: .B FTW_F
        !            66: Entry is some other kind of file.
        !            67: .TP
        !            68: .B FTW_DNR
        !            69: Entry is a directory that cannot be read;
        !            70: no descendants will be visited.
        !            71: .TP
        !            72: .B FTW_NS
        !            73: .I Lstat
        !            74: (see
        !            75: .IR stat (2))
        !            76: failed on
        !            77: .IR name ;
        !            78: contents of
        !            79: .I statb
        !            80: are undefined
        !            81: .TP
        !            82: .B FTW_NSL
        !            83: .I Lstat
        !            84: succeeded, but
        !            85: .I stat
        !            86: failed; contents of
        !            87: .I statb
        !            88: are undefined.
        !            89: .PD
        !            90: .PP
        !            91: The tree traversal continues until the tree is exhausted or
        !            92: .I fn
        !            93: returns a nonzero value.
        !            94: When the tree is exhausted,
        !            95: .I ftw
        !            96: returns zero.
        !            97: When
        !            98: .I fn
        !            99: returns a nonzero value,
        !           100: .I ftw
        !           101: stops and returns that value.
        !           102: .PP
        !           103: Normally symbolic links are not followed.
        !           104: But if on a symbolic link
        !           105: .RB ( FTW_SL )
        !           106: .IR fn
        !           107: sets
        !           108: .B S->quit
        !           109: to
        !           110: .BR FTW_FOLLOW ,
        !           111: .IR ftw
        !           112: will next attempt to follow the link.
        !           113: .PP
        !           114: .I Ftw
        !           115: normally visits a readable directory twice, before and
        !           116: after visiting its descendants.
        !           117: But if on a previsit
        !           118: .RB ( FTW_D )
        !           119: .I fn
        !           120: sets
        !           121: .B S->quit
        !           122: to
        !           123: .B FTW_SKD,
        !           124: .I ftw
        !           125: will skip the descendants and the postvisit
        !           126: .RB ( FTW_DP ).
        !           127: .PP
        !           128: .I Ftw
        !           129: uses one file descriptor for each level in the tree up to a
        !           130: maximum of
        !           131: .I depth
        !           132: (or 1, if
        !           133: .IR depth <1)
        !           134: descriptors.
        !           135: .I Depth
        !           136: must not exceed the number of available file descriptors; small
        !           137: values of 
        !           138: .I depth 
        !           139: may cause
        !           140: .I ftw
        !           141: to run slowly, but will not change its effect.
        !           142: .SH "SEE ALSO"
        !           143: .IR stat (2),
        !           144: .IR directory (3)
        !           145: .SH DIAGNOSTICS
        !           146: .I Ftw
        !           147: returns \-1
        !           148: with
        !           149: .I errno
        !           150: set to
        !           151: .B ENOMEM
        !           152: when
        !           153: .IR malloc (3)
        !           154: fails.
        !           155: .PP
        !           156: .I Errno
        !           157: is set appropriately when
        !           158: .I ftw
        !           159: calls
        !           160: .I fn
        !           161: with code
        !           162: .BR FTW_DNR ,
        !           163: .BR FTW_NS ,
        !           164: or
        !           165: .BR FTW_NSL .

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.