SEARCHP
Section: C Library Functions (3)
Updated: 12/5/79
Index
Return to Main Contents
NAME
searchp - search for file using searchlist
SYNOPSIS
int searchp (searchlist,filename,buffer,function);
char *searchlist,*filename,*buffer;
int (*function)();
DESCRIPTION
Searchp
looks for an acceptable filename by concatenating
a name onto each directory name within a given
searchlist.
Searchlist
is a list of directory names, separated by colons (:).
Searchp
will parse these names, prepending each in turn to
filename,
the name of the file being sought.
The resulting pathname
is passed as an argument to
function,
a function provided by the user.
This function will receive one parameter -- the pathname --
and must return an integer telling whether this filename
is acceptable or not.
If a non-zero value is returned, then the
search continues with the next directory name from
searchlist.
If the value 0 is returned, then searching stops.
In this case, the full filename is copied into the string
buffer,
and
searchp
returns 0.
If all the directories are unsuccessfully searched, then
searchp
returns the value -1.
If
filename
begins with a slash, it is assumed to be an absolute pathname
and
searchlist
is not used.
SEE ALSO
openp(3),
fopenp(3),
wantread(3),
wantwrite(3),
fwantread(3),
fwantwrite(3),
execlp(3),
execvp(3),
runp(3),
runvp(3)
DIAGNOSTICS
-1 is returned if no filename is satisfactory; 0 otherwise.
BUGS
UNIX from Bell Labs uses three different searching algorithms
in three different contexts.
In the SHELL, executable programs
are sought, but are considered absolute pathnames if they
contain
a slash, even if it is not the first character (bogus, in my
opinion -- sas).
The routines
execvp
and
execlp
use the same rule,
but also accept the minus sign (-) as a separator in the pathlist.
The C compiler, in searching for macro files, uses the rule of
searchp
-- a filename is only absolute if it
begins
with a slash.
Users normally do not need to use
searchp;
there are other, higher-level routines
(runp,
runvp,
openp,
fopenp)
which should normally be used.
There are, however,
occasions in which such routines are not powerful enough;
then,
searchp
is appropriate.
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- SEE ALSO
-
- DIAGNOSTICS
-
- BUGS
-
This document was created by
man2html,
using the manual pages.
Time: 12:50:20 GMT, May 26, 2025