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)