glenda.party
term% ls -F
term% cat index.txt
ENV(3)                     Library Functions Manual                     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 arbi‐
       trary  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 con‐
       trast, 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 environ‐
       ment.

       The special global environment #ec contains kernel configuration  vari‐
       ables,  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.

                                                                        ENV(3)