blob: e0709b2e9394fa943dd60f70a689e430ce3ed7e6 [file] [log] [blame]
.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