2004-11-03 13:51:07 +00:00
|
|
|
.\" $NetBSD: fts.3,v 1.13.2.1 1997/11/14 02:09:32 mrg Exp $
|
|
|
|
.\"
|
|
|
|
.\" Copyright (c) 1989, 1991, 1993, 1994
|
|
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
|
|
.\"
|
|
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
|
|
.\" modification, are permitted provided that the following conditions
|
|
|
|
.\" are met:
|
|
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
|
|
.\" must display the following acknowledgement:
|
|
|
|
.\" This product includes software developed by the University of
|
|
|
|
.\" California, Berkeley and its contributors.
|
|
|
|
.\" 4. Neither the name of the University nor the names of its contributors
|
|
|
|
.\" may be used to endorse or promote products derived from this software
|
|
|
|
.\" without specific prior written permission.
|
|
|
|
.\"
|
|
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
|
|
.\" SUCH DAMAGE.
|
|
|
|
.\"
|
|
|
|
.\" @(#)fts.3 8.5 (Berkeley) 4/16/94
|
|
|
|
.\"
|
2007-12-03 19:59:38 +00:00
|
|
|
.\" 2007-12-08, mtk, Converted from mdoc to man macros
|
2007-12-03 19:53:53 +00:00
|
|
|
.\"
|
2007-12-28 05:38:10 +00:00
|
|
|
.TH FTS 3 2007-12-28 "Linux" "Linux Programmer's Manual"
|
2007-12-03 19:53:53 +00:00
|
|
|
.SH NAME
|
|
|
|
fts, fts_open, fts_read, fts_children, fts_set, fts_close \- \
|
|
|
|
traverse a file hierarchy
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.nf
|
|
|
|
.B #include <sys/types.h>
|
|
|
|
.B #include <sys/stat.h>
|
|
|
|
.B #include <fts.h>
|
|
|
|
.sp
|
|
|
|
.BI "FTS *fts_open(char * const *" path_argv ", int " options ", "
|
2007-12-28 05:59:40 +00:00
|
|
|
.BI " int (*" compar ")(const FTSENT **, const FTSENT **));"
|
2007-12-03 19:53:53 +00:00
|
|
|
.sp
|
|
|
|
.BI "FTSENT *fts_read(FTS *" ftsp );
|
|
|
|
.sp
|
|
|
|
.BI "FTSENT *fts_children(FTS *" ftsp ", int " options );
|
|
|
|
.sp
|
|
|
|
.BI "int fts_set(FTS *" ftsp ", FTSENT *" f ", int " options );
|
|
|
|
.sp
|
|
|
|
.BI "int fts_close(FTS *" ftsp );
|
|
|
|
.fi
|
|
|
|
.SH DESCRIPTION
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
2007-12-03 19:53:53 +00:00
|
|
|
fts functions are provided for traversing
|
2004-11-03 13:51:07 +00:00
|
|
|
file hierarchies.
|
|
|
|
A simple overview is that the
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_open ()
|
2007-12-16 14:08:46 +00:00
|
|
|
function returns a "handle" on a file hierarchy, which is then supplied to
|
2004-11-03 13:51:07 +00:00
|
|
|
the other
|
2007-12-03 19:53:53 +00:00
|
|
|
fts functions.
|
2004-11-03 13:51:07 +00:00
|
|
|
The function
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ()
|
2004-11-03 13:51:07 +00:00
|
|
|
returns a pointer to a structure describing one of the files in the file
|
|
|
|
hierarchy.
|
|
|
|
The function
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_children ()
|
2004-11-03 13:51:07 +00:00
|
|
|
returns a pointer to a linked list of structures, each of which describes
|
|
|
|
one of the files contained in a directory in the hierarchy.
|
2010-01-16 17:40:08 +00:00
|
|
|
In general, directories are visited two distinguishable times; in preorder
|
|
|
|
(before any of their descendants are visited) and in postorder (after all
|
2004-11-03 13:51:07 +00:00
|
|
|
of their descendants have been visited).
|
|
|
|
Files are visited once.
|
2007-12-16 14:08:46 +00:00
|
|
|
It is possible to walk the hierarchy "logically" (ignoring symbolic links)
|
2004-11-03 13:51:07 +00:00
|
|
|
or physically (visiting symbolic links), order the walk of the hierarchy or
|
close.2, epoll_create.2, epoll_ctl.2, fcntl.2, madvise.2, mmap.2, mremap.2, select_tut.2, setgid.2, setuid.2, syscalls.2, vmsplice.2, dlopen.3, fts.3, getpw.3, stdio.3, fd.4, initrd.4, random.4, sd.4, bootparam.7, capabilities.7, cpuset.7, epoll.7, inotify.7, man.7, socket.7, x25.7: Global fix: s/re-/re/
The tendency in English, as prescribed in style guides like
Chicago MoS, is towards removing hyphens after prefixes
like "re-" etc.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2010-01-16 17:45:23 +00:00
|
|
|
prune and/or revisit portions of the hierarchy.
|
2007-12-28 05:38:10 +00:00
|
|
|
.PP
|
2004-11-03 13:51:07 +00:00
|
|
|
Two structures are defined (and typedef'd) in the include file
|
2007-12-03 19:53:53 +00:00
|
|
|
.IR <fts.h> .
|
2004-11-03 13:51:07 +00:00
|
|
|
The first is
|
2007-12-03 19:53:53 +00:00
|
|
|
.IR FTS ,
|
2004-11-03 13:51:07 +00:00
|
|
|
the structure that represents the file hierarchy itself.
|
|
|
|
The second is
|
2007-12-03 19:53:53 +00:00
|
|
|
.IR FTSENT ,
|
2004-11-03 13:51:07 +00:00
|
|
|
the structure that represents a file in the file
|
|
|
|
hierarchy.
|
|
|
|
Normally, an
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure is returned for every file in the file
|
|
|
|
hierarchy.
|
2007-12-03 19:53:53 +00:00
|
|
|
In this manual page, "file" and
|
|
|
|
"FTSENT structure"
|
|
|
|
are generally interchangeable.
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure contains at least the following fields, which are
|
|
|
|
described in greater detail below:
|
2007-12-19 06:57:44 +00:00
|
|
|
.in +4n
|
2007-12-03 19:53:53 +00:00
|
|
|
.nf
|
|
|
|
|
2004-11-03 13:51:07 +00:00
|
|
|
typedef struct _ftsent {
|
2007-12-23 17:26:26 +00:00
|
|
|
unsigned short fts_info; /* flags for FTSENT structure */
|
2007-12-19 05:53:30 +00:00
|
|
|
char *fts_accpath; /* access path */
|
|
|
|
char *fts_path; /* root path */
|
|
|
|
short fts_pathlen; /* strlen(fts_path) */
|
|
|
|
char *fts_name; /* filename */
|
|
|
|
short fts_namelen; /* strlen(fts_name) */
|
|
|
|
short fts_level; /* depth (\-1 to N) */
|
|
|
|
int fts_errno; /* file errno */
|
|
|
|
long fts_number; /* local numeric value */
|
|
|
|
void *fts_pointer; /* local address value */
|
|
|
|
struct ftsent *fts_parent; /* parent directory */
|
|
|
|
struct ftsent *fts_link; /* next file structure */
|
|
|
|
struct ftsent *fts_cycle; /* cycle structure */
|
|
|
|
struct stat *fts_statp; /* stat(2) information */
|
2004-11-03 13:51:07 +00:00
|
|
|
} FTSENT;
|
2007-12-03 19:53:53 +00:00
|
|
|
.fi
|
|
|
|
.in
|
2007-12-28 05:38:10 +00:00
|
|
|
.PP
|
2004-11-03 13:51:07 +00:00
|
|
|
These fields are defined as follows:
|
2007-12-03 19:53:53 +00:00
|
|
|
.\" .Bl -tag -width "fts_namelen"
|
|
|
|
.TP 12
|
|
|
|
.IR fts_info
|
2004-11-03 13:51:07 +00:00
|
|
|
One of the following flags describing the returned
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure and
|
|
|
|
the file it represents.
|
|
|
|
With the exception of directories without errors
|
2007-12-03 19:53:53 +00:00
|
|
|
.RB ( FTS_D ),
|
2004-11-03 13:51:07 +00:00
|
|
|
all of these
|
|
|
|
entries are terminal, that is, they will not be revisited, nor will any
|
|
|
|
of their descendants be visited.
|
2007-12-03 19:53:53 +00:00
|
|
|
.\" .Bl -tag -width FTS_DEFAULT
|
|
|
|
.RS 12
|
|
|
|
.TP 12
|
|
|
|
.BR FTS_D
|
2010-01-16 17:40:08 +00:00
|
|
|
A directory being visited in preorder.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_DC
|
2004-11-03 13:51:07 +00:00
|
|
|
A directory that causes a cycle in the tree.
|
|
|
|
(The
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_cycle
|
2004-11-03 13:51:07 +00:00
|
|
|
field of the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure will be filled in as well.)
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_DEFAULT
|
2004-11-03 13:51:07 +00:00
|
|
|
Any
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure that represents a file type not explicitly described
|
|
|
|
by one of the other
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_info
|
2004-11-03 13:51:07 +00:00
|
|
|
values.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_DNR
|
2004-11-03 13:51:07 +00:00
|
|
|
A directory which cannot be read.
|
|
|
|
This is an error return, and the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_errno
|
2004-11-03 13:51:07 +00:00
|
|
|
field will be set to indicate what caused the error.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_DOT
|
2004-11-03 13:51:07 +00:00
|
|
|
A file named
|
2007-12-03 19:53:53 +00:00
|
|
|
"."
|
2004-11-03 13:51:07 +00:00
|
|
|
or
|
2007-12-03 19:53:53 +00:00
|
|
|
".."
|
2006-02-12 22:15:41 +00:00
|
|
|
which was not specified as a filename to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_open ()
|
2004-11-03 13:51:07 +00:00
|
|
|
(see
|
2007-12-10 15:03:27 +00:00
|
|
|
.BR FTS_SEEDOT ).
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_DP
|
2010-01-16 17:40:08 +00:00
|
|
|
A directory being visited in postorder.
|
2004-11-03 13:51:07 +00:00
|
|
|
The contents of the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure will be unchanged from when
|
2010-01-16 17:40:08 +00:00
|
|
|
it was returned in preorder, that is, with the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_info
|
2004-11-03 13:51:07 +00:00
|
|
|
field set to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR FTS_D .
|
|
|
|
.TP
|
|
|
|
.BR FTS_ERR
|
2004-11-03 13:51:07 +00:00
|
|
|
This is an error return, and the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_errno
|
2004-11-03 13:51:07 +00:00
|
|
|
field will be set to indicate what caused the error.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_F
|
2004-11-03 13:51:07 +00:00
|
|
|
A regular file.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_NS
|
2004-11-03 13:51:07 +00:00
|
|
|
A file for which no
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR stat (2)
|
2004-11-03 13:51:07 +00:00
|
|
|
information was available.
|
|
|
|
The contents of the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_statp
|
2004-11-03 13:51:07 +00:00
|
|
|
field are undefined.
|
|
|
|
This is an error return, and the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_errno
|
2004-11-03 13:51:07 +00:00
|
|
|
field will be set to indicate what caused the error.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_NSOK
|
2004-11-03 13:51:07 +00:00
|
|
|
A file for which no
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR stat (2)
|
2004-11-03 13:51:07 +00:00
|
|
|
information was requested.
|
|
|
|
The contents of the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_statp
|
2004-11-03 13:51:07 +00:00
|
|
|
field are undefined.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_SL
|
2004-11-03 13:51:07 +00:00
|
|
|
A symbolic link.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_SLNONE
|
2007-12-25 22:02:19 +00:00
|
|
|
A symbolic link with a nonexistent target.
|
2004-11-03 13:51:07 +00:00
|
|
|
The contents of the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_statp
|
2004-11-03 13:51:07 +00:00
|
|
|
field reference the file characteristic information for the symbolic link
|
|
|
|
itself.
|
2007-12-03 19:53:53 +00:00
|
|
|
.\" .El
|
|
|
|
.RE
|
|
|
|
.TP
|
|
|
|
.IR fts_accpath
|
2004-11-03 13:51:07 +00:00
|
|
|
A path for accessing the file from the current directory.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.IR fts_path
|
2004-11-03 13:51:07 +00:00
|
|
|
The path for the file relative to the root of the traversal.
|
|
|
|
This path contains the path specified to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_open ()
|
2004-11-03 13:51:07 +00:00
|
|
|
as a prefix.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.IR fts_pathlen
|
2004-11-03 13:51:07 +00:00
|
|
|
The length of the string referenced by
|
2007-12-03 19:53:53 +00:00
|
|
|
.IR fts_path .
|
|
|
|
.TP
|
|
|
|
.IR fts_name
|
2004-11-03 13:51:07 +00:00
|
|
|
The name of the file.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.IR fts_namelen
|
2004-11-03 13:51:07 +00:00
|
|
|
The length of the string referenced by
|
2007-12-03 19:53:53 +00:00
|
|
|
.IR fts_name .
|
|
|
|
.TP
|
|
|
|
.IR fts_level
|
2004-11-03 13:51:07 +00:00
|
|
|
The depth of the traversal, numbered from \-1 to N, where this file
|
|
|
|
was found.
|
|
|
|
The
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure representing the parent of the starting point (or root)
|
|
|
|
of the traversal is numbered \-1, and the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure for the root
|
|
|
|
itself is numbered 0.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.IR fts_errno
|
2004-11-03 13:51:07 +00:00
|
|
|
Upon return of a
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure from the
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_children ()
|
2004-11-03 13:51:07 +00:00
|
|
|
or
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ()
|
2004-11-03 13:51:07 +00:00
|
|
|
functions, with its
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_info
|
2007-04-12 22:42:49 +00:00
|
|
|
field set to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR FTS_DNR ,
|
|
|
|
.BR FTS_ERR
|
2004-11-03 13:51:07 +00:00
|
|
|
or
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR FTS_NS ,
|
2004-11-03 13:51:07 +00:00
|
|
|
the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_errno
|
2004-11-03 13:51:07 +00:00
|
|
|
field contains the value of the external variable
|
2007-12-03 19:53:53 +00:00
|
|
|
.I errno
|
2004-11-03 13:51:07 +00:00
|
|
|
specifying the cause of the error.
|
|
|
|
Otherwise, the contents of the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_errno
|
2004-11-03 13:51:07 +00:00
|
|
|
field are undefined.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.IR fts_number
|
2004-11-03 13:51:07 +00:00
|
|
|
This field is provided for the use of the application program and is
|
|
|
|
not modified by the
|
2007-12-03 19:53:53 +00:00
|
|
|
fts functions.
|
2004-11-03 13:51:07 +00:00
|
|
|
It is initialized to 0.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.IR fts_pointer
|
2004-11-03 13:51:07 +00:00
|
|
|
This field is provided for the use of the application program and is
|
|
|
|
not modified by the
|
2007-12-03 19:53:53 +00:00
|
|
|
fts functions.
|
2004-11-03 13:51:07 +00:00
|
|
|
It is initialized to
|
2007-12-03 19:53:53 +00:00
|
|
|
NULL.
|
|
|
|
.TP
|
|
|
|
.IR fts_parent
|
2004-11-03 13:51:07 +00:00
|
|
|
A pointer to the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure referencing the file in the hierarchy
|
2007-06-08 11:56:22 +00:00
|
|
|
immediately above the current file, that is, the directory of which this
|
2004-11-03 13:51:07 +00:00
|
|
|
file is a member.
|
|
|
|
A parent structure for the initial entry point is provided as well,
|
|
|
|
however, only the
|
2007-12-03 19:53:53 +00:00
|
|
|
.IR fts_level ,
|
|
|
|
.I fts_number
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_pointer
|
2004-11-03 13:51:07 +00:00
|
|
|
fields are guaranteed to be initialized.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.IR fts_link
|
2004-11-03 13:51:07 +00:00
|
|
|
Upon return from the
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_children ()
|
2004-11-03 13:51:07 +00:00
|
|
|
function, the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_link
|
2004-11-03 13:51:07 +00:00
|
|
|
field points to the next structure in the NULL-terminated linked list of
|
|
|
|
directory members.
|
|
|
|
Otherwise, the contents of the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_link
|
2004-11-03 13:51:07 +00:00
|
|
|
field are undefined.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.IR fts_cycle
|
2004-11-03 13:51:07 +00:00
|
|
|
If a directory causes a cycle in the hierarchy (see
|
2007-12-10 15:03:27 +00:00
|
|
|
.BR FTS_DC ),
|
2004-11-03 13:51:07 +00:00
|
|
|
either because
|
|
|
|
of a hard link between two directories, or a symbolic link pointing to a
|
|
|
|
directory, the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_cycle
|
2004-11-03 13:51:07 +00:00
|
|
|
field of the structure will point to the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure in the hierarchy that references the same file as the current
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure.
|
|
|
|
Otherwise, the contents of the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_cycle
|
2004-11-03 13:51:07 +00:00
|
|
|
field are undefined.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.IR fts_statp
|
2004-11-03 13:51:07 +00:00
|
|
|
A pointer to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR stat (2)
|
2004-11-03 13:51:07 +00:00
|
|
|
information for the file.
|
2007-12-03 19:53:53 +00:00
|
|
|
.\" .El
|
|
|
|
.PP
|
2004-11-03 13:51:07 +00:00
|
|
|
A single buffer is used for all of the paths of all of the files in the
|
|
|
|
file hierarchy.
|
|
|
|
Therefore, the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_path
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_accpath
|
2004-11-03 13:51:07 +00:00
|
|
|
fields are guaranteed to be
|
2010-01-16 18:00:04 +00:00
|
|
|
null-terminated
|
2007-12-03 19:53:53 +00:00
|
|
|
.I only
|
2004-11-03 13:51:07 +00:00
|
|
|
for the file most recently returned by
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ().
|
2004-11-03 13:51:07 +00:00
|
|
|
To use these fields to reference any files represented by other
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structures will require that the path buffer be modified using the
|
|
|
|
information contained in that
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure's
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_pathlen
|
2004-11-03 13:51:07 +00:00
|
|
|
field.
|
|
|
|
Any such modifications should be undone before further calls to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ()
|
2004-11-03 13:51:07 +00:00
|
|
|
are attempted.
|
|
|
|
The
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_name
|
2004-11-03 13:51:07 +00:00
|
|
|
field is always
|
2010-01-16 18:00:04 +00:00
|
|
|
null-terminated.
|
2007-12-03 19:53:53 +00:00
|
|
|
.SS fts_open()
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_open ()
|
2004-11-03 13:51:07 +00:00
|
|
|
function takes a pointer to an array of character pointers naming one
|
|
|
|
or more paths which make up a logical file hierarchy to be traversed.
|
|
|
|
The array must be terminated by a
|
2007-12-03 19:53:53 +00:00
|
|
|
NULL
|
2004-11-03 13:51:07 +00:00
|
|
|
pointer.
|
2007-12-28 05:38:10 +00:00
|
|
|
.PP
|
2004-11-03 13:51:07 +00:00
|
|
|
There are
|
|
|
|
a number of options, at least one of which (either
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR FTS_LOGICAL
|
2004-11-03 13:51:07 +00:00
|
|
|
or
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR FTS_PHYSICAL )
|
2004-11-03 13:51:07 +00:00
|
|
|
must be specified.
|
|
|
|
The options are selected by
|
2007-12-03 19:53:53 +00:00
|
|
|
.IR or ing
|
2004-11-03 13:51:07 +00:00
|
|
|
the following values:
|
2007-12-03 19:53:53 +00:00
|
|
|
.\" .Bl -tag -width "FTS_PHYSICAL"
|
|
|
|
.TP 13
|
|
|
|
.BR FTS_COMFOLLOW
|
2004-11-03 13:51:07 +00:00
|
|
|
This option causes any symbolic link specified as a root path to be
|
|
|
|
followed immediately whether or not
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR FTS_LOGICAL
|
2004-11-03 13:51:07 +00:00
|
|
|
is also specified.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_LOGICAL
|
2004-11-03 13:51:07 +00:00
|
|
|
This option causes the
|
2007-12-03 19:53:53 +00:00
|
|
|
fts routines to return
|
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structures for the targets of symbolic links
|
|
|
|
instead of the symbolic links themselves.
|
|
|
|
If this option is set, the only symbolic links for which
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structures
|
2007-12-25 22:02:19 +00:00
|
|
|
are returned to the application are those referencing nonexistent files.
|
2004-11-03 13:51:07 +00:00
|
|
|
Either
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR FTS_LOGICAL
|
2004-11-03 13:51:07 +00:00
|
|
|
or
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR FTS_PHYSICAL
|
|
|
|
.I must
|
2004-11-03 13:51:07 +00:00
|
|
|
be provided to the
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_open ()
|
2004-11-03 13:51:07 +00:00
|
|
|
function.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_NOCHDIR
|
2004-11-03 13:51:07 +00:00
|
|
|
As a performance optimization, the
|
2007-12-03 19:53:53 +00:00
|
|
|
fts functions change directories as they walk the file hierarchy.
|
2004-11-03 13:51:07 +00:00
|
|
|
This has the side-effect that an application cannot rely on being
|
|
|
|
in any particular directory during the traversal.
|
|
|
|
The
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR FTS_NOCHDIR
|
2004-11-03 13:51:07 +00:00
|
|
|
option turns off this optimization, and the
|
2007-12-03 19:53:53 +00:00
|
|
|
fts functions will not change the current directory.
|
2004-11-03 13:51:07 +00:00
|
|
|
Note that applications should not themselves change their current directory
|
|
|
|
and try to access files unless
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR FTS_NOCHDIR
|
2004-11-03 13:51:07 +00:00
|
|
|
is specified and absolute
|
|
|
|
pathnames were provided as arguments to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_open ().
|
|
|
|
.TP
|
|
|
|
.BR FTS_NOSTAT
|
2004-11-03 13:51:07 +00:00
|
|
|
By default, returned
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structures reference file characteristic information (the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I statp
|
2004-11-03 13:51:07 +00:00
|
|
|
field) for each file visited.
|
|
|
|
This option relaxes that requirement as a performance optimization,
|
|
|
|
allowing the
|
2007-12-03 19:53:53 +00:00
|
|
|
fts functions to set the
|
|
|
|
.I fts_info
|
2004-11-03 13:51:07 +00:00
|
|
|
field to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR FTS_NSOK
|
2004-11-03 13:51:07 +00:00
|
|
|
and leave the contents of the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I statp
|
2004-11-03 13:51:07 +00:00
|
|
|
field undefined.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_PHYSICAL
|
2004-11-03 13:51:07 +00:00
|
|
|
This option causes the
|
2007-12-03 19:53:53 +00:00
|
|
|
fts routines to return
|
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structures for symbolic links themselves instead
|
|
|
|
of the target files they point to.
|
|
|
|
If this option is set,
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structures for all symbolic links in the
|
|
|
|
hierarchy are returned to the application.
|
|
|
|
Either
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR FTS_LOGICAL
|
2004-11-03 13:51:07 +00:00
|
|
|
or
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR FTS_PHYSICAL
|
|
|
|
.I must
|
2004-11-03 13:51:07 +00:00
|
|
|
be provided to the
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_open ()
|
2004-11-03 13:51:07 +00:00
|
|
|
function.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_SEEDOT
|
2004-11-03 13:51:07 +00:00
|
|
|
By default, unless they are specified as path arguments to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_open (),
|
2004-11-03 13:51:07 +00:00
|
|
|
any files named
|
2007-12-03 19:53:53 +00:00
|
|
|
"."
|
2004-11-03 13:51:07 +00:00
|
|
|
or
|
2007-12-03 19:53:53 +00:00
|
|
|
".."
|
2004-11-03 13:51:07 +00:00
|
|
|
encountered in the file hierarchy are ignored.
|
|
|
|
This option causes the
|
2007-12-03 19:53:53 +00:00
|
|
|
fts routines to return
|
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structures for them.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_XDEV
|
2004-11-03 13:51:07 +00:00
|
|
|
This option prevents
|
2007-12-03 19:53:53 +00:00
|
|
|
fts from descending into directories that have a different device number
|
2004-11-03 13:51:07 +00:00
|
|
|
than the file from which the descent began.
|
2007-12-03 19:53:53 +00:00
|
|
|
.\" .El
|
2007-12-28 05:38:10 +00:00
|
|
|
.PP
|
2004-11-03 13:51:07 +00:00
|
|
|
The argument
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR compar ()
|
2004-11-03 13:51:07 +00:00
|
|
|
specifies a user-defined function which may be used to order the traversal
|
|
|
|
of the hierarchy.
|
|
|
|
It
|
|
|
|
takes two pointers to pointers to
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structures as arguments and
|
|
|
|
should return a negative value, zero, or a positive value to indicate
|
|
|
|
if the file referenced by its first argument comes before, in any order
|
|
|
|
with respect to, or after, the file referenced by its second argument.
|
|
|
|
The
|
2007-12-03 19:53:53 +00:00
|
|
|
.IR fts_accpath ,
|
|
|
|
.I fts_path
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_pathlen
|
2004-11-03 13:51:07 +00:00
|
|
|
fields of the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structures may
|
2007-12-03 19:53:53 +00:00
|
|
|
.I never
|
2004-11-03 13:51:07 +00:00
|
|
|
be used in this comparison.
|
2007-04-12 22:42:49 +00:00
|
|
|
If the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_info
|
2004-11-03 13:51:07 +00:00
|
|
|
field is set to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR FTS_NS
|
2004-11-03 13:51:07 +00:00
|
|
|
or
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR FTS_NSOK ,
|
2004-11-03 13:51:07 +00:00
|
|
|
the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_statp
|
2004-11-03 13:51:07 +00:00
|
|
|
field may not either.
|
|
|
|
If the
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR compar ()
|
2004-11-03 13:51:07 +00:00
|
|
|
argument is
|
2007-12-03 19:53:53 +00:00
|
|
|
NULL,
|
2004-11-03 13:51:07 +00:00
|
|
|
the directory traversal order is in the order listed in
|
2007-12-03 19:53:53 +00:00
|
|
|
.I path_argv
|
2004-11-03 13:51:07 +00:00
|
|
|
for the root paths, and in the order listed in the directory for
|
|
|
|
everything else.
|
2007-12-03 19:53:53 +00:00
|
|
|
.SS fts_read()
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ()
|
2004-11-03 13:51:07 +00:00
|
|
|
function returns a pointer to an
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure describing a file in
|
|
|
|
the hierarchy.
|
|
|
|
Directories (that are readable and do not cause cycles) are visited at
|
2010-01-16 17:40:08 +00:00
|
|
|
least twice, once in preorder and once in postorder.
|
2004-11-03 13:51:07 +00:00
|
|
|
All other files are visited at least once.
|
|
|
|
(Hard links between directories that do not cause cycles or symbolic
|
|
|
|
links to symbolic links may cause files to be visited more than once,
|
|
|
|
or directories more than twice.)
|
2007-12-28 05:38:10 +00:00
|
|
|
.PP
|
2004-11-03 13:51:07 +00:00
|
|
|
If all the members of the hierarchy have been returned,
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ()
|
2004-11-03 13:51:07 +00:00
|
|
|
returns
|
2007-12-03 19:53:53 +00:00
|
|
|
NULL
|
2004-11-03 13:51:07 +00:00
|
|
|
and sets the external variable
|
2007-12-03 19:53:53 +00:00
|
|
|
.I errno
|
2004-11-03 13:51:07 +00:00
|
|
|
to 0.
|
|
|
|
If an error unrelated to a file in the hierarchy occurs,
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ()
|
2004-11-03 13:51:07 +00:00
|
|
|
returns
|
2007-12-03 19:53:53 +00:00
|
|
|
NULL
|
2004-11-03 13:51:07 +00:00
|
|
|
and sets
|
2007-12-03 19:53:53 +00:00
|
|
|
.I errno
|
2004-11-03 13:51:07 +00:00
|
|
|
appropriately.
|
|
|
|
If an error related to a returned file occurs, a pointer to an
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure is returned, and
|
2007-12-03 19:53:53 +00:00
|
|
|
.I errno
|
2004-11-03 13:51:07 +00:00
|
|
|
may or may not have been set (see
|
2007-12-03 19:53:53 +00:00
|
|
|
.IR fts_info ).
|
2007-12-28 05:38:10 +00:00
|
|
|
.PP
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structures returned by
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ()
|
2004-11-03 13:51:07 +00:00
|
|
|
may be overwritten after a call to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_close ()
|
2004-11-03 13:51:07 +00:00
|
|
|
on the same file hierarchy stream, or, after a call to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ()
|
2004-11-03 13:51:07 +00:00
|
|
|
on the same file hierarchy stream unless they represent a file of type
|
|
|
|
directory, in which case they will not be overwritten until after a call to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ()
|
2004-11-03 13:51:07 +00:00
|
|
|
after the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure has been returned by the function
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ()
|
2010-01-16 17:40:08 +00:00
|
|
|
in postorder.
|
2007-12-03 19:53:53 +00:00
|
|
|
.SS fts_children()
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_children ()
|
2004-11-03 13:51:07 +00:00
|
|
|
function returns a pointer to an
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure describing the first entry in a NULL-terminated linked list of
|
|
|
|
the files in the directory represented by the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure most recently returned by
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ().
|
2004-11-03 13:51:07 +00:00
|
|
|
The list is linked through the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_link
|
2004-11-03 13:51:07 +00:00
|
|
|
field of the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure, and is ordered by the user-specified comparison function, if any.
|
|
|
|
Repeated calls to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_children ()
|
2004-11-03 13:51:07 +00:00
|
|
|
will recreate this linked list.
|
2007-12-28 05:38:10 +00:00
|
|
|
.PP
|
2004-11-03 13:51:07 +00:00
|
|
|
As a special case, if
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ()
|
2004-11-03 13:51:07 +00:00
|
|
|
has not yet been called for a hierarchy,
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_children ()
|
2004-11-03 13:51:07 +00:00
|
|
|
will return a pointer to the files in the logical directory specified to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_open (),
|
2007-06-08 11:56:22 +00:00
|
|
|
that is, the arguments specified to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_open ().
|
2004-11-03 13:51:07 +00:00
|
|
|
Otherwise, if the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structure most recently returned by
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ()
|
2010-01-16 17:40:08 +00:00
|
|
|
is not a directory being visited in preorder,
|
2004-11-03 13:51:07 +00:00
|
|
|
or the directory does not contain any files,
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_children ()
|
2004-11-03 13:51:07 +00:00
|
|
|
returns
|
2007-12-03 19:53:53 +00:00
|
|
|
NULL
|
2004-11-03 13:51:07 +00:00
|
|
|
and sets
|
2007-12-03 19:53:53 +00:00
|
|
|
.I errno
|
2004-11-03 13:51:07 +00:00
|
|
|
to zero.
|
|
|
|
If an error occurs,
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_children ()
|
2004-11-03 13:51:07 +00:00
|
|
|
returns
|
2007-12-03 19:53:53 +00:00
|
|
|
NULL
|
2004-11-03 13:51:07 +00:00
|
|
|
and sets
|
2007-12-03 19:53:53 +00:00
|
|
|
.I errno
|
2004-11-03 13:51:07 +00:00
|
|
|
appropriately.
|
2007-12-28 05:38:10 +00:00
|
|
|
.PP
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
2007-12-03 19:53:53 +00:00
|
|
|
.I FTSENT
|
2004-11-03 13:51:07 +00:00
|
|
|
structures returned by
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_children ()
|
2004-11-03 13:51:07 +00:00
|
|
|
may be overwritten after a call to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_children (),
|
|
|
|
.BR fts_close ()
|
2004-11-03 13:51:07 +00:00
|
|
|
or
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ()
|
2004-11-03 13:51:07 +00:00
|
|
|
on the same file hierarchy stream.
|
2007-12-28 05:38:10 +00:00
|
|
|
.PP
|
2007-12-03 19:53:53 +00:00
|
|
|
.I Option
|
2004-11-03 13:51:07 +00:00
|
|
|
may be set to the following value:
|
2007-12-03 19:53:53 +00:00
|
|
|
.\" .Bl -tag -width FTS_NAMEONLY
|
|
|
|
.TP 13
|
|
|
|
.BR FTS_NAMEONLY
|
2004-11-03 13:51:07 +00:00
|
|
|
Only the names of the files are needed.
|
|
|
|
The contents of all the fields in the returned linked list of structures
|
|
|
|
are undefined with the exception of the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_name
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_namelen
|
2004-11-03 13:51:07 +00:00
|
|
|
fields.
|
2007-12-03 19:53:53 +00:00
|
|
|
.\" .El
|
2007-12-17 09:43:12 +00:00
|
|
|
.SS fts_set()
|
2004-11-03 13:51:07 +00:00
|
|
|
The function
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_set ()
|
2004-11-03 13:51:07 +00:00
|
|
|
allows the user application to determine further processing for the
|
|
|
|
file
|
2007-12-03 19:53:53 +00:00
|
|
|
.I f
|
2004-11-03 13:51:07 +00:00
|
|
|
of the stream
|
2007-12-03 19:53:53 +00:00
|
|
|
.IR ftsp .
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_set ()
|
2004-11-03 13:51:07 +00:00
|
|
|
function
|
|
|
|
returns 0 on success, and \-1 if an error occurs.
|
2007-12-03 19:53:53 +00:00
|
|
|
.I Option
|
2004-11-03 13:51:07 +00:00
|
|
|
must be set to one of the following values:
|
2007-12-03 19:53:53 +00:00
|
|
|
.\" .Bl -tag -width FTS_PHYSICAL
|
|
|
|
.TP 13
|
|
|
|
.BR FTS_AGAIN
|
close.2, epoll_create.2, epoll_ctl.2, fcntl.2, madvise.2, mmap.2, mremap.2, select_tut.2, setgid.2, setuid.2, syscalls.2, vmsplice.2, dlopen.3, fts.3, getpw.3, stdio.3, fd.4, initrd.4, random.4, sd.4, bootparam.7, capabilities.7, cpuset.7, epoll.7, inotify.7, man.7, socket.7, x25.7: Global fix: s/re-/re/
The tendency in English, as prescribed in style guides like
Chicago MoS, is towards removing hyphens after prefixes
like "re-" etc.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2010-01-16 17:45:23 +00:00
|
|
|
Re-visit the file; any file type may be revisited.
|
2004-11-03 13:51:07 +00:00
|
|
|
The next call to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ()
|
2004-11-03 13:51:07 +00:00
|
|
|
will return the referenced file.
|
|
|
|
The
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_stat
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_info
|
2004-11-03 13:51:07 +00:00
|
|
|
fields of the structure will be reinitialized at that time,
|
|
|
|
but no other fields will have been changed.
|
|
|
|
This option is meaningful only for the most recently returned
|
|
|
|
file from
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ().
|
2010-01-16 17:40:08 +00:00
|
|
|
Normal use is for postorder directory visits, where it causes the
|
close.2, epoll_create.2, epoll_ctl.2, fcntl.2, madvise.2, mmap.2, mremap.2, select_tut.2, setgid.2, setuid.2, syscalls.2, vmsplice.2, dlopen.3, fts.3, getpw.3, stdio.3, fd.4, initrd.4, random.4, sd.4, bootparam.7, capabilities.7, cpuset.7, epoll.7, inotify.7, man.7, socket.7, x25.7: Global fix: s/re-/re/
The tendency in English, as prescribed in style guides like
Chicago MoS, is towards removing hyphens after prefixes
like "re-" etc.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2010-01-16 17:45:23 +00:00
|
|
|
directory to be revisited (in both preorder and postorder) as well as all
|
2004-11-03 13:51:07 +00:00
|
|
|
of its descendants.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_FOLLOW
|
2004-11-03 13:51:07 +00:00
|
|
|
The referenced file must be a symbolic link.
|
|
|
|
If the referenced file is the one most recently returned by
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read (),
|
2004-11-03 13:51:07 +00:00
|
|
|
the next call to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ()
|
2004-11-03 13:51:07 +00:00
|
|
|
returns the file with the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_info
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_statp
|
2004-11-03 13:51:07 +00:00
|
|
|
fields reinitialized to reflect the target of the symbolic link instead
|
|
|
|
of the symbolic link itself.
|
|
|
|
If the file is one of those most recently returned by
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_children (),
|
2004-11-03 13:51:07 +00:00
|
|
|
the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_info
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_statp
|
2004-11-03 13:51:07 +00:00
|
|
|
fields of the structure, when returned by
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read (),
|
2004-11-03 13:51:07 +00:00
|
|
|
will reflect the target of the symbolic link instead of the symbolic link
|
|
|
|
itself.
|
|
|
|
In either case, if the target of the symbolic link does not exist the
|
|
|
|
fields of the returned structure will be unchanged and the
|
2007-12-03 19:53:53 +00:00
|
|
|
.I fts_info
|
2004-11-03 13:51:07 +00:00
|
|
|
field will be set to
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR FTS_SLNONE .
|
2007-12-28 05:38:10 +00:00
|
|
|
.IP
|
2010-01-16 17:40:08 +00:00
|
|
|
If the target of the link is a directory, the preorder return, followed
|
|
|
|
by the return of all of its descendants, followed by a postorder return,
|
2004-11-03 13:51:07 +00:00
|
|
|
is done.
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.BR FTS_SKIP
|
2004-11-03 13:51:07 +00:00
|
|
|
No descendants of this file are visited.
|
|
|
|
The file may be one of those most recently returned by either
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_children ()
|
2004-11-03 13:51:07 +00:00
|
|
|
or
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ().
|
|
|
|
.\" .El
|
|
|
|
.SS fts_close()
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_close ()
|
2004-11-03 13:51:07 +00:00
|
|
|
function closes a file hierarchy stream
|
2007-12-03 19:53:53 +00:00
|
|
|
.I ftsp
|
2004-11-03 13:51:07 +00:00
|
|
|
and restores the current directory to the directory from which
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_open ()
|
2004-11-03 13:51:07 +00:00
|
|
|
was called to open
|
2007-12-03 19:53:53 +00:00
|
|
|
.IR ftsp .
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_close ()
|
2004-11-03 13:51:07 +00:00
|
|
|
function
|
|
|
|
returns 0 on success, and \-1 if an error occurs.
|
2007-12-03 19:53:53 +00:00
|
|
|
.SH ERRORS
|
2004-11-03 13:51:07 +00:00
|
|
|
The function
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_open ()
|
2004-11-03 13:51:07 +00:00
|
|
|
may fail and set
|
2007-12-03 19:53:53 +00:00
|
|
|
.I errno
|
|
|
|
for any of the errors specified for
|
|
|
|
.BR open (2)
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR malloc (3).
|
2007-12-28 05:38:10 +00:00
|
|
|
.PP
|
2004-11-03 13:51:07 +00:00
|
|
|
The function
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_close ()
|
2004-11-03 13:51:07 +00:00
|
|
|
may fail and set
|
2007-12-03 19:53:53 +00:00
|
|
|
.I errno
|
|
|
|
for any of the errors specified for
|
|
|
|
.BR chdir (2)
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR close (2).
|
2007-12-28 05:38:10 +00:00
|
|
|
.PP
|
2004-11-03 13:51:07 +00:00
|
|
|
The functions
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_read ()
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_children ()
|
2004-11-03 13:51:07 +00:00
|
|
|
may fail and set
|
2007-12-03 19:53:53 +00:00
|
|
|
.I errno
|
|
|
|
for any of the errors specified for
|
|
|
|
.BR chdir (2),
|
|
|
|
.BR malloc (3),
|
|
|
|
.BR opendir (3),
|
|
|
|
.BR readdir (3)
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR stat (2).
|
2007-12-28 05:38:10 +00:00
|
|
|
.PP
|
2004-11-03 13:51:07 +00:00
|
|
|
In addition,
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_children (),
|
|
|
|
.BR fts_open ()
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
2007-12-03 19:53:53 +00:00
|
|
|
.BR fts_set ()
|
2004-11-03 13:51:07 +00:00
|
|
|
may fail and set
|
2007-12-03 19:53:53 +00:00
|
|
|
.I errno
|
2004-11-03 13:51:07 +00:00
|
|
|
as follows:
|
2007-12-03 19:53:53 +00:00
|
|
|
.TP
|
|
|
|
.B EINVAL
|
2004-11-03 13:51:07 +00:00
|
|
|
The options were invalid.
|
2007-12-03 19:53:53 +00:00
|
|
|
.SH VERSIONS
|
2007-05-19 04:30:20 +00:00
|
|
|
These functions are available in Linux since glibc2.
|
2007-12-03 19:53:53 +00:00
|
|
|
.SH "CONFORMING TO"
|
2007-06-08 11:25:04 +00:00
|
|
|
4.4BSD.
|
2007-07-26 06:00:32 +00:00
|
|
|
.\" The following statement is years old, and seems no closer to
|
|
|
|
.\" being true -- mtk
|
|
|
|
.\" The
|
2007-12-03 19:53:53 +00:00
|
|
|
.\" .I fts
|
2007-07-26 06:00:32 +00:00
|
|
|
.\" utility is expected to be included in a future
|
2007-12-03 19:53:53 +00:00
|
|
|
.\" POSIX.1
|
2007-07-26 06:00:32 +00:00
|
|
|
.\" revision.
|
2007-12-03 19:53:53 +00:00
|
|
|
.SH SEE ALSO
|
|
|
|
.BR find (1),
|
|
|
|
.BR chdir (2),
|
|
|
|
.BR stat (2),
|
|
|
|
.BR ftw (3),
|
|
|
|
.BR qsort (3)
|