12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- .TH ENV 3
- .SH NAME
- env \- environment variables
- .SH SYNOPSIS
- .nf
- .B bind #e /env
- .BI /env/ var1
- .BI /env/ var2
- ...
- .fi
- .SH DESCRIPTION
- The
- .I env
- device serves a one-level directory containing files with arbitrary names
- and contents.
- The intention is that the file name is the name of an
- .I environment variable
- (see
- .IR rc (1)),
- and the content is the variable's current value.
- .PP
- When a
- .IR fork (2)
- system call creates a new process, both the parent and the
- child continue to see exactly the same files in the
- .I env
- device: changes made in either process can be noticed by the other.
- In contrast, an
- .B rfork
- system call with the
- .B RFENVG
- bit set (see
- .IR fork (2))
- causes a split: initially both process groups see the
- same environment files, but any changes made in one process group
- cannot be noticed by the other.
- An
- .B rfork
- with
- .B RFCENVG
- splits and then clears the environment.
- .PP
- The special global environment
- .B #ec
- contains kernel configuration variables,
- such as those set in
- .IR plan9.ini (8).
- All processes see the same
- .BR #ec ;
- its contents are writable only by the host owner.
- [XXX actually everything is world writable; that's a mistake.]
- .SH SEE ALSO
- .IR rc (1),
- .IR fork (2),
- .B #c/reboot
- in
- .IR cons (3),
- .IR plan9.ini (8)
- .SH SOURCE
- .B /sys/src/9/port/devenv.c
- .SH BUGS
- A write starting at an offset after the current extent of a file
- yields an error instead of zero filling.
|