2.11BSD/man/cat3/traverse.0
TRAVERSE(3WI) UNIX Programmer's Manual TRAVERSE(3WI)
NAME
traverse - recursively traverse a directory
SYNOPSIS
traverse (path, func)
char *path;
int (*func) ();
func (path, filetype, position)
char *path;
DESCRIPTION
traverse applies its argument function func to its argument
file pathname path. If path is a directory, then traverse
applies func to all its entries. This traversal is in depth
first order so that files are processed in the order that
they are stored in the directory.
The argument func should take three parameters: a file name,
a file type, and a position. The call looks like this for
directories:
(*func) (path, 'd', position);
and like this for other files:
(*func) (path, 'f', position);
The position is 0 when path is first encountered and 1 when
traverse is done. This is used to allow processing before
and after a directory is processed.
EXAMPLE
list (name, type, pos)
char *name;
{
if (type == 'd')
printf ("%s %s\n", pos ? "Leaving" : "Entering", name);
else /* type == 'f' */
printf (" %s\n", name);
}
AUTHOR
Gary Perlman
BUGS
There are no diagnostics when directories cannot be
searched.
Printed 11/26/99 December 16, 1984 1