Blame


1 a5f9ff62 2005-01-23 devnull .TH SEARCHPATH 3
2 a5f9ff62 2005-01-23 devnull .SH NAME
3 a5f9ff62 2005-01-23 devnull search \- search for named executable
4 a5f9ff62 2005-01-23 devnull .SH SYNOPSIS
5 a5f9ff62 2005-01-23 devnull .B #include <u.h>
6 a5f9ff62 2005-01-23 devnull .br
7 a5f9ff62 2005-01-23 devnull .B #include <libc.h>
8 a5f9ff62 2005-01-23 devnull .PP
9 a5f9ff62 2005-01-23 devnull .B
10 a5f9ff62 2005-01-23 devnull char* searchpath(char *name)
11 a5f9ff62 2005-01-23 devnull .SH DESCRIPTION
12 a5f9ff62 2005-01-23 devnull .I Searchpath
13 a5f9ff62 2005-01-23 devnull searches for the executable
14 a5f9ff62 2005-01-23 devnull .I name
15 a5f9ff62 2005-01-23 devnull in the same way that
16 d32deab1 2020-08-16 rsc .MR sh (1)
17 a5f9ff62 2005-01-23 devnull and
18 d32deab1 2020-08-16 rsc .MR rc (1)
19 a5f9ff62 2005-01-23 devnull do.
20 a5f9ff62 2005-01-23 devnull .PP
21 a5f9ff62 2005-01-23 devnull The environment variable
22 a5f9ff62 2005-01-23 devnull .B $PATH
23 a5f9ff62 2005-01-23 devnull is treated as a colon-separated list of directories in which to look for
24 a5f9ff62 2005-01-23 devnull .IR name .
25 a5f9ff62 2005-01-23 devnull An empty string in the list is treated as the current directory.
26 a5f9ff62 2005-01-23 devnull If an executable named
27 a5f9ff62 2005-01-23 devnull .I name
28 a5f9ff62 2005-01-23 devnull is found in one of the directories,
29 a5f9ff62 2005-01-23 devnull .I searchpath
30 a5f9ff62 2005-01-23 devnull returns a pointer to a malloced string containing a path
31 a5f9ff62 2005-01-23 devnull .IB \fR( dir / name \fR,
32 a5f9ff62 2005-01-23 devnull or simply
33 a5f9ff62 2005-01-23 devnull .IR name )
34 a5f9ff62 2005-01-23 devnull suitable for use in
35 d32deab1 2020-08-16 rsc .MR open (3)
36 a5f9ff62 2005-01-23 devnull or
37 d32deab1 2020-08-16 rsc .MR exec (3) .
38 a5f9ff62 2005-01-23 devnull .PP
39 a5f9ff62 2005-01-23 devnull If
40 a5f9ff62 2005-01-23 devnull .I name
41 a5f9ff62 2005-01-23 devnull begins with
42 a5f9ff62 2005-01-23 devnull .B ./ ,
43 a5f9ff62 2005-01-23 devnull .B ../ ,
44 a5f9ff62 2005-01-23 devnull or
45 a5f9ff62 2005-01-23 devnull .B / ,
46 a5f9ff62 2005-01-23 devnull then the search path is ignored.
47 a5f9ff62 2005-01-23 devnull If
48 a5f9ff62 2005-01-23 devnull .I name
49 a5f9ff62 2005-01-23 devnull exists and is an executable, then
50 a5f9ff62 2005-01-23 devnull .I searchpath
51 a5f9ff62 2005-01-23 devnull returns a malloced string containing name.
52 a5f9ff62 2005-01-23 devnull .PP
53 a5f9ff62 2005-01-23 devnull The returned buffer should be freed when no longer needed.
54 a5f9ff62 2005-01-23 devnull If
55 a5f9ff62 2005-01-23 devnull .I name
56 a5f9ff62 2005-01-23 devnull is not found,
57 a5f9ff62 2005-01-23 devnull .I searchpath
58 a5f9ff62 2005-01-23 devnull returns nil.
59 a5f9ff62 2005-01-23 devnull .PP
60 a5f9ff62 2005-01-23 devnull .SH SOURCE
61 a5f9ff62 2005-01-23 devnull .B \*9/src/lib9/searchpath.c