aboutsummaryrefslogtreecommitdiff
path: root/man/man3/searchpath.3
blob: 10b741ebb832f49f42f0165d73437cdda1069f6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
.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
.MR sh (1)
and
.MR 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 
.MR open (3)
or 
.MR 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