ENV(3)                                                     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: ini-
          tially 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 configu-
          ration variables, such as those set in plan9.ini(8). All
          processes see the same #ec; its contents are writable only
          by the host owner.

     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.

     Page 1                       Plan 9             (printed 3/19/24)