da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.fp 5 CW
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de Af
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ds ;G \\*(;G\\f\\$1\\$3\\f\\$2
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.if !\\$4 .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de aF
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ie \\$3 .ft \\$1
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.el \{\
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ds ;G \&
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.nr ;G \\n(.f
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin\\*(;G
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ft \\n(;G \}
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de L
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de LR
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de RL
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de EX \" start example
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ta 1i 2i 3i 4i 5i 6i
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.RS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PD 0
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ft 5
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.nf
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de EE \" end example
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.fi
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ft
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PD
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.RE
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.TH FIND 3
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH NAME
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinfind \- fastfind algorithm interface
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH SYNOPSIS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.EX
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#include <find.h>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinvoid* findopen(const char* \fIpattern\fP);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinchar* findnext(void* \fIhandle\fP);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinvoid findclose(void* \fIhandle\fP);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.EE
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH DESCRIPTION
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThese routines access the data generated by the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I fastfind
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinalgorithm.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThe data itself is generated by a standalone program that is run daily
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinvia
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I cron
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinor
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.IR at .
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L findopen
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinreturns a handle to a
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I fastfind
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinstream for the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I ksh
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinfile pattern
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.IR pattern .
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L findnext
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinreturns the next pathname that matches the pattern specified by
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.IR handle .
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L findnext
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinreturns
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L 0
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinwhen no more pathnames match the pattern.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinFinally,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L findclose
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chincloses the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I fastfind
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinstream for
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.IR handle .
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH BUGS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThese rotuines are only as good as the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I fastfind
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chininformation which is in the system administration domain.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH "SEE ALSO"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintw(1),
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinfind(1),
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinstrmatch(3)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.br
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinJames A. Woods, \fIFast Find Algorithm\fP, Usenix ;login:, February/March, 1983, p. 8