NAME
       tclvars - Variables used by Tcl


DESCRIPTION
       The  following  global  variables  are created and managed
       automatically by the  Tcl  library.   Except  where  noted
       below, these variables should normally be treated as read-
       only by application-specific code and by users.

       env
              This variable is maintained  by  Tcl  as  an  array
              whose  elements  are  the environment variables for
              the process.  Reading an element  will  return  the
              value  of  the  corresponding environment variable.
              Setting an element of the  array  will  modify  the
              corresponding  environment variable or create a new
              one if it doesn't already exist.  Unsetting an ele-
              ment  of env will remove the corresponding environ-
              ment variable.   Changes  to  the  env  array  will
              affect  the  environment passed to children by com-
              mands like exec.  If the entire env array is  unset
              then Tcl will stop monitoring env accesses and will
              not update environment variables.

       errorCode
              After an error has occurred, this variable will  be
              set  to hold additional information about the error
              in a form that is easy to  process  with  programs.
              errorCode  consists  of a Tcl list with one or more
              elements.  The first element of the list identifies
              a  general class of errors, and determines the for-
              mat of the rest of the list.  The following formats
              for  errorCode are used by the Tcl core; individual
              applications may define additional formats.

              ARITH code msg
                     This format is used when an arithmetic error
                     occurs (e.g. an attempt to divide by zero in
                     the expr command).  Code identifies the pre-
                     cise error and msg provides a human-readable
                     description of  the  error.   Code  will  be
                     either  DIVZERO (for an attempt to divide by
                     zero), DOMAIN (if an argument is outside the
                     domain  of  a  function,  such as acos(-3)),
                     IOVERFLOW (for integer overflow),  OVERLFLOW
                     (for  a floating-point overflow), or UNKNOWN
                     (if the cause of the error cannot be  deter-
                     mined).

              CHILDKILLED pid sigName msg
                     This format is used when a child process has
                     been killed because of a signal.  The second
                     element  of  errorCode will be the process's
                     identifier (in decimal).  The third  element
                     will be the symbolic name of the signal that
                     caused the process to terminate; it will  be
                     one  of the names from the include file sig-
                     nal.h, such as SIGPIPE.  The fourth  element
                     will   be  a  short  human-readable  message
                     describing the signal, such  as  ``write  on
                     pipe with no readers'' for SIGPIPE.

              CHILDSTATUS pid code
                     This format is used when a child process has
                     exited with a  non-zero  exit  status.   The
                     second element of errorCode will be the pro-
                     cess's identifier (in decimal) and the third
                     element  will  be  the exit code returned by
                     the process (also in decimal).

              CHILDSUSP pid sigName msg
                     This format is used when a child process has
                     been  suspended  because  of  a signal.  The
                     second element of errorCode will be the pro-
                     cess's  identifier,  in  decimal.  The third
                     element will be the  symbolic  name  of  the
                     signal  that  caused the process to suspend;
                     this will be  one  of  the  names  from  the
                     include file signal.h, such as SIGTTIN.  The
                     fourth  element  will  be  a  short   human-
                     readable message describing the signal, such
                     as ``background tty read'' for SIGTTIN.

              NONE
                     This format is  used  for  errors  where  no
                     additional  information  is available for an
                     error besides the message returned with  the
                     error.   In  these cases errorCode will con-
                     sist of a list containing a  single  element
                     whose contents are NONE.

              POSIX errName msg
                     If  the first element of errorCode is POSIX,
                     then the error occurred during a POSIX  ker-
                     nel  call.   The  second element of the list
                     will contain the symbolic name of the  error
                     that  occurred, such as ENOENT; this will be
                     one of the values  defined  in  the  include
                     file errno.h.  The third element of the list
                     will be a human-readable message correspond-
                     ing  to  errName,  such as ``no such file or
                     directory'' for the ENOENT case.

              To set errorCode, applications should  use  library
              procedures    such    as    Tcl_SetErrorCode    and
              Tcl_PosixError, or they may invoke the  error  com-
              mand.  If one of
