.TH SEARCHPATH 3 | |
.SH NAME | |
search \- search for named executable | |
.SH SYNOPSIS | |
.B #include <u.h> | |
.br | |
.B #include <libc.h> | |
.PP | |
.B | |
char* searchpath(char *name) | |
.SH DESCRIPTION | |
.I Searchpath | |
searches for the executable | |
.I name | |
in the same way that | |
.IR sh (1) | |
and | |
.IR rc (1) | |
do. | |
.PP | |
The environment variable | |
.B $PATH | |
is treated as a colon-separated list of directories in which to look for | |
.IR name . | |
An empty string in the list is treated as the current directory. | |
If an executable named | |
.I name | |
is found in one of the directories, | |
.I searchpath | |
returns a pointer to a malloced string containing a path | |
.IB \fR( dir / name \fR, | |
or simply | |
.IR name ) | |
suitable for use in | |
.IR open (3) | |
or | |
.IR exec (3). | |
.PP | |
If | |
.I name | |
begins with | |
.B ./ , | |
.B ../ , | |
or | |
.B / , | |
then the search path is ignored. | |
If | |
.I name | |
exists and is an executable, then | |
.I searchpath | |
returns a malloced string containing name. | |
.PP | |
The returned buffer should be freed when no longer needed. | |
If | |
.I name | |
is not found, | |
.I searchpath | |
returns nil. | |
.PP | |
.SH SOURCE | |
.B \*9/src/lib9/searchpath.c |