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