3 .ds ;G \\*(;G\\f\\$1\\$3\\f\\$2
4 .if !
\a\\$4
\a\a .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
7 .ie
\a\\$3
\a\a .ft \\$1
11 .Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
16 .aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
19 .aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
22 .aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
24 .de EX \" start example
41 preroot \- preroot support
46 char* getpreroot(char* \fIpath\fP, char* \fIcmd\fP);
47 int ispreroot(char* \fIdir\fP);
48 int realopen(char* \fIpath\fP, int \fImode\fP, int \fIperm\fP);
49 void setpreroot(char** \fIargv\fP, char* \fIdir\fP);
54 routines manipulate the process preroot.
56 is a kernel supported per-process two level viewpath.
57 All pathnames rooted at
59 are first searched for in the process preroot directory
60 and then in the system root directory.
61 Setting the process preroot is a priveleged operation controlled by the
68 for those systems that support preroot.
69 The following routines are valid only when
74 returns a pointer to the absolute pathname of the preroot directory
77 The result is placed in
85 is used to allocate the pathname space.
89 has no preroot or if an error was encountered.
92 is set to indicate the error.
95 Non-zero is returned if
97 is the current process preroot.
102 then non-zero is returned if the current process has a preroot.
105 temporarily disables the process preroot and does an
107 relative to the system root directory.
108 The return value from
111 If there is no preroot then
120 .L "execvp(a\fIrgv\fP[0],\fIargv\fP)"
121 with the process preroot set to
137 returns immediately if
139 is already the process preroot.
143 Preroot semantics should be preserved when reading directories.