Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

rc(1)

fork(2)

cons(3)

plan9.ini(8)

ENV(3)

NAME

env − environment variables

SYNOPSIS

­bind #e /env
 /env/var1
/env/var2
 ...

DESCRIPTION

The ­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 ­environment variable (see rc(1)), and the content is the variable’s current value.

When a fork(2) system call creates a new process, both the parent and the child continue to see exactly the same files in the ­env device: changes made in either process can be noticed by the other.  In contrast, an ­rfork system call with the ­RFENVG bit set (see 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 ­rfork with ­RFCENVG splits and then clears the environment. 

The special global environment ­#ec contains kernel configuration variables, such as those set in plan9.ini(8). All processes see the same #ec; its contents are writable only by the host owner.  [XXX actually everything is world writable; that’s a mistake.]

SEE ALSO

rc(1), fork(2), ­#c/reboot in cons(3), plan9.ini(8)

SOURCE

­/sys/src/9/port/devenv.c

BUGS

A write starting at an offset after the current extent of a file yields an error instead of zero filling. 

Plan 9  —  March 01, 2002

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026