tclvars.n
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:18k
- '"
- '" Copyright (c) 1993 The Regents of the University of California.
- '" Copyright (c) 1994-1997 Sun Microsystems, Inc.
- '"
- '" See the file "license.terms" for information on usage and redistribution
- '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- '"
- '" RCS: @(#) $Id: tclvars.n,v 1.13.2.3 2005/07/26 21:39:22 dgp Exp $
- '"
- .so man.macros
- .TH tclvars n 8.0 Tcl "Tcl Built-In Commands"
- .BS
- '" Note: do not modify the .SH NAME line immediately below!
- .SH NAME
- tclvars - Variables used by Tcl
- .BE
- .SH DESCRIPTION
- .PP
- 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.
- .TP
- fBenvfR
- 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 element of fBenvfR will remove the corresponding
- environment variable.
- Changes to the fBenvfR array will affect the environment
- passed to children by commands like fBexecfR.
- If the entire fBenvfR array is unset then Tcl will stop
- monitoring fBenvfR accesses and will not update environment
- variables.
- .RS
- .VS 8.0
- Under Windows, the environment variables PATH and COMSPEC in any
- capitalization are converted automatically to upper case. For instance, the
- PATH variable could be exported by the operating system as ``path'',
- ``Path'', ``PaTh'', etc., causing otherwise simple Tcl code to have to
- support many special cases. All other environment variables inherited by
- Tcl are left unmodified. Setting an env array variable to blank is the
- same as unsetting it as this is the behavior of the underlying Windows OS.
- It should be noted that relying on an existing and empty environment variable
- won't work on windows and is discouraged for cross-platform usage.
- .VE
- .RE
- .RS
- On the Macintosh, the environment variable is constructed by Tcl as no
- global environment variable exists. The environment variables that
- are created for Tcl include:
- .TP
- fBLOGINfR
- This holds the Chooser name of the Macintosh.
- .TP
- fBUSERfR
- This also holds the Chooser name of the Macintosh.
- .TP
- fBSYS_FOLDERfR
- The path to the system directory.
- .TP
- fBAPPLE_M_FOLDERfR
- The path to the Apple Menu directory.
- .TP
- fBCP_FOLDERfR
- The path to the control panels directory.
- .TP
- fBDESK_FOLDERfR
- The path to the desk top directory.
- .TP
- fBEXT_FOLDERfR
- The path to the system extensions directory.
- .TP
- fBPREF_FOLDERfR
- The path to the preferences directory.
- .TP
- fBPRINT_MON_FOLDERfR
- The path to the print monitor directory.
- .TP
- fBSHARED_TRASH_FOLDERfR
- The path to the network trash directory.
- .TP
- fBTRASH_FOLDERfR
- The path to the trash directory.
- .TP
- fBSTART_UP_FOLDERfR
- The path to the start up directory.
- .TP
- fBHOMEfR
- The path to the application's default directory.
- .PP
- You can also create your own environment variables for the Macintosh.
- A file named fITcl Environment VariablesfR may be placed in the
- preferences folder in the Mac system folder. Each line of this file
- should be of the form fIVAR_NAME=var_datafR.
- .PP
- The last alternative is to place environment variables in a 'STR#'
- resource named fITcl Environment VariablesfR of the application. This
- is considered a little more ``Mac like'' than a Unix style Environment
- Variable file. Each entry in the 'STR#' resource has the same format
- as above. The source code file fItclMacEnv.cfR contains the
- implementation of the env mechanisms. This file contains many
- #define's that allow customization of the env mechanisms to fit your
- applications needs.
- .RE
- .TP
- fBerrorCodefR
- After an error has occurred, this variable will be set to hold
- a list value representing additional information about the error
- in a form that is easy to process with programs.
- The first element of the list identifies a general class of
- errors, and determines the format of the rest of the list.
- The following formats for fBerrorCodefR are used by the
- Tcl core; individual applications may define additional formats.
- .RS
- .TP
- fBARITHfI code msgfR
- This format is used when an arithmetic error occurs (e.g. an attempt
- to divide by zero in the fBexprfR command).
- fICodefR identifies the precise error and fImsgfR provides a
- human-readable description of the error. fICodefR 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),
- OVERFLOW (for a floating-point overflow),
- or UNKNOWN (if the cause of the error cannot be determined).
- .TP
- fBCHILDKILLEDfI pid sigName msgfR
- This format is used when a child process has been killed because of
- a signal. The second element of fBerrorCodefR 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 signal.h, such as fBSIGPIPEfR.
- The fourth element will be a short human-readable message
- describing the signal, such as ``write on pipe with no readers''
- for fBSIGPIPEfR.
- .TP
- fBCHILDSTATUSfI pid codefR
- This format is used when a child process has exited with a non-zero
- exit status. The second element of fBerrorCodefR will be the
- process's identifier (in decimal) and the third element will be the exit
- code returned by the process (also in decimal).
- .TP
- fBCHILDSUSPfI pid sigName msgfR
- This format is used when a child process has been suspended because
- of a signal.
- The second element of fBerrorCodefR will be the process'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 fBSIGTTINfR.
- The fourth element will be a short human-readable message
- describing the signal, such as ``background tty read''
- for fBSIGTTINfR.
- .TP
- fBNONEfR
- 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 fBerrorCodefR will consist of a list
- containing a single element whose contents are fBNONEfR.
- .TP
- fBPOSIX fIerrName msgfR
- If the first element of fBerrorCodefR is fBPOSIXfR, then
- the error occurred during a POSIX kernel call.
- The second element of the list will contain the symbolic name
- of the error that occurred, such as fBENOENTfR; 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 corresponding to fIerrNamefR, such as
- ``no such file or directory'' for the fBENOENTfR case.
- .PP
- To set fBerrorCodefR, applications should use library
- procedures such as fBTcl_SetErrorCodefR and fBTcl_PosixErrorfR,
- or they may invoke the fBerrorfR command.
- If one of these methods hasn't been used, then the Tcl
- interpreter will reset the variable to fBNONEfR after
- the next error.
- .RE
- .TP
- fBerrorInfofR
- After an error has occurred, this string will contain one or more lines
- identifying the Tcl commands and procedures that were being executed
- when the most recent error occurred.
- Its contents take the form of a stack trace showing the various
- nested Tcl commands that had been invoked at the time of the error.
- .TP
- fBtcl_libraryfR
- This variable holds the name of a directory containing the
- system library of Tcl scripts, such as those used for auto-loading.
- The value of this variable is returned by the fBinfo libraryfR command.
- See the fBlibraryfR manual entry for details of the facilities
- provided by the Tcl script library.
- Normally each application or package will have its own application-specific
- script library in addition to the Tcl script library;
- each application should set a global variable with a name like
- fB$fIappfB_libraryfR (where fIappfR is the application's name)
- to hold the network file name for that application's library directory.
- The initial value of fBtcl_libraryfR is set when an interpreter
- is created by searching several different directories until one is
- found that contains an appropriate Tcl startup script.
- If the fBTCL_LIBRARYfR environment variable exists, then
- the directory it names is checked first.
- If fBTCL_LIBRARYfR isn't set or doesn't refer to an appropriate
- directory, then Tcl checks several other directories based on a
- compiled-in default location, the location of the binary containing
- the application, and the current working directory.
- .TP
- fBtcl_patchLevelfR
- When an interpreter is created Tcl initializes this variable to
- hold a string giving the current patch level for Tcl, such as
- fB7.3p2fR for Tcl 7.3 with the first two official patches, or
- fB7.4b4fR for the fourth beta release of Tcl 7.4.
- The value of this variable is returned by the fBinfo patchlevelfR
- command.
- .VS 8.0 br
- .TP
- fBtcl_pkgPathfR
- This variable holds a list of directories indicating where packages are
- normally installed. It is not used on Windows. It typically contains
- either one or two entries; if it contains two entries, the first is
- normally a directory for platform-dependent packages (e.g., shared library
- binaries) and the second is normally a directory for platform-independent
- packages (e.g., script files). Typically a package is installed as a
- subdirectory of one of the entries in fB$tcl_pkgPathfR. The directories
- in fB$tcl_pkgPathfR are included by default in the fBauto_pathfR
- variable, so they and their immediate subdirectories are automatically
- searched for packages during fBpackage requirefR commands. Note:
- fBtcl_pkgPathfR it not intended to be modified by the application. Its
- value is added to fBauto_pathfR at startup; changes to fBtcl_pkgPathfR
- are not reflected in fBauto_pathfR. If you want Tcl to search additional
- directories for packages you should add the names of those directories to
- fBauto_pathfR, not fBtcl_pkgPathfR.
- .VE
- .TP
- fBtcl_platformfR
- This is an associative array whose elements contain information about
- the platform on which the application is running, such as the name of
- the operating system, its current release number, and the machine's
- instruction set. The elements listed below will always
- be defined, but they may have empty strings as values if Tcl couldn't
- retrieve any relevant information. In addition, extensions
- and applications may add additional values to the array. The
- predefined elements are:
- .RS
- .VS
- .TP
- fBbyteOrderfR
- The native byte order of this machine: either fBlittleEndianfR or
- fBbigEndianfR.
- .VE
- .TP
- fBdebugfR
- If this variable exists, then the interpreter was compiled with and linked
- to a debug-enabled C run-time. This variable will only exist on Windows,
- so extension writers can specify which package to load depending on the
- C run-time library that is in use. This is not an indication that this core
- contains symbols.
- .TP
- fBmachinefR
- The instruction set executed by this machine, such as
- fBintelfR, fBPPCfR, fB68kfR, or fBsun4mfR. On UNIX machines, this
- is the value returned by fBuname -mfR.
- .TP
- fBosfR
- The name of the operating system running on this machine,
- such as fBWindows 95fR, fBWindows NTfR, fBMacOSfR, or fBSunOSfR.
- On UNIX machines, this is the value returned by fBuname -sfR.
- On Windows 95 and Windows 98, the value returned will be fBWindows
- 95fR to provide better backwards compatibility to Windows 95; to
- distinguish between the two, check the fBosVersionfR.
- .TP
- fBosVersionfR
- The version number for the operating system running on this machine.
- On UNIX machines, this is the value returned by fBuname -rfR. On
- Windows 95, the version will be 4.0; on Windows 98, the version will
- be 4.10.
- .TP
- fBplatformfR
- Either fBwindowsfR, fBmacintoshfR, or fBunixfR. This identifies the
- general operating environment of the machine.
- .TP
- fBthreadedfR
- If this variable exists, then the interpreter
- was compiled with threads enabled.
- .TP
- fBuserfR
- This identifies the
- current user based on the login information available on the platform.
- This comes from the USER or LOGNAME environment variable on Unix,
- and the value from GetUserName on Windows and Macintosh.
- .TP
- fBwordSizefR
- .VS 8.4
- This gives the size of the native-machine word in bytes (strictly, it
- is same as the result of evaluating fIsizeof(long)fR in C.)
- .VE 8.4
- .RE
- .TP
- fBtcl_precisionfR
- .VS
- This variable controls the number of digits to generate
- when converting floating-point values to strings. It defaults
- to 12.
- 17 digits is ``perfect'' for IEEE floating-point in that it allows
- double-precision values to be converted to strings and back to
- binary with no loss of information. However, using 17 digits prevents
- any rounding, which produces longer, less intuitive results. For example,
- fBexpr 1.4fR returns 1.3999999999999999 with fBtcl_precisionfR
- set to 17, vs. 1.4 if fBtcl_precisionfR is 12.
- .RS
- All interpreters in a process share a single fBtcl_precisionfR value:
- changing it in one interpreter will affect all other interpreters as
- well. However, safe interpreters are not allowed to modify the
- variable.
- .RE
- .VE
- .TP
- fBtcl_rcFileNamefR
- This variable is used during initialization to indicate the name of a
- user-specific startup file. If it is set by application-specific
- initialization, then the Tcl startup code will check for the existence
- of this file and fBsourcefR it if it exists. For example, for fBwishfR
- the variable is set to fB~/.wishrcfR for Unix and fB~/wishrc.tclfR
- for Windows.
- .TP
- fBtcl_rcRsrcNamefR
- This variable is only used on Macintosh systems. The variable is used
- during initialization to indicate the name of a user-specific
- fBTEXTfR resource located in the application or extension resource
- forks. If it is set by application-specific initialization, then the
- Tcl startup code will check for the existence of this resource and
- fBsourcefR it if it exists. For example, the Macintosh fBwishfR
- application has the variable is set to fBtclshrcfR.
- .TP
- fBtcl_traceCompilefR
- The value of this variable can be set to control
- how much tracing information
- is displayed during bytecode compilation.
- By default, tcl_traceCompile is zero and no information is displayed.
- Setting tcl_traceCompile to 1 generates a one-line summary in stdout
- whenever a procedure or top-level command is compiled.
- Setting it to 2 generates a detailed listing in stdout of the
- bytecode instructions emitted during every compilation.
- This variable is useful in
- tracking down suspected problems with the Tcl compiler.
- It is also occasionally useful when converting
- existing code to use Tcl8.0.
- .PP
- This variable and functionality only exist if
- fBTCL_COMPILE_DEBUGfR was defined during Tcl's compilation.
- .TP
- fBtcl_traceExecfR
- The value of this variable can be set to control
- how much tracing information
- is displayed during bytecode execution.
- By default, tcl_traceExec is zero and no information is displayed.
- Setting tcl_traceExec to 1 generates a one-line trace in stdout
- on each call to a Tcl procedure.
- Setting it to 2 generates a line of output
- whenever any Tcl command is invoked
- that contains the name of the command and its arguments.
- Setting it to 3 produces a detailed trace showing the result of
- executing each bytecode instruction.
- Note that when tcl_traceExec is 2 or 3,
- commands such as fBsetfR and fBincrfR
- that have been entirely replaced by a sequence
- of bytecode instructions are not shown.
- Setting this variable is useful in
- tracking down suspected problems with the bytecode compiler
- and interpreter.
- It is also occasionally useful when converting
- code to use Tcl8.0.
- .PP
- This variable and functionality only exist if
- fBTCL_COMPILE_DEBUGfR was defined during Tcl's compilation.
- .TP
- fBtcl_wordcharsfR
- The value of this variable is a regular expression that can be set to
- control what are considered ``word'' characters, for instances like
- selecting a word by double-clicking in text in Tk. It is platform
- dependent. On Windows, it defaults to fB\SfR, meaning anything
- but a Unicode space character. Otherwise it defaults to fB\wfR,
- which is any Unicode word character (number, letter, or underscore).
- .TP
- fBtcl_nonwordcharsfR
- The value of this variable is a regular expression that can be set to
- control what are considered ``non-word'' characters, for instances like
- selecting a word by double-clicking in text in Tk. It is platform
- dependent. On Windows, it defaults to fB\sfR, meaning any Unicode space
- character. Otherwise it defaults to fB\WfR, which is anything but a
- Unicode word character (number, letter, or underscore).
- .TP
- fBtcl_versionfR
- When an interpreter is created Tcl initializes this variable to
- hold the version number for this version of Tcl in the form fIx.yfR.
- Changes to fIxfR represent major changes with probable
- incompatibilities and changes to fIyfR represent small enhancements and
- bug fixes that retain backward compatibility.
- The value of this variable is returned by the fBinfo tclversionfR
- command.
- .SH "OTHER GLOBAL VARIABLES"
- The following variables are only guaranteed to exist in fBtclshfR
- and fBwishfR executables; the Tcl library does not define them
- itself but many Tcl environments do.
- .TP 6
- fBargcfR
- The number of arguments to fBtclshfR or fBwishfR.
- .TP 6
- fBargvfR
- Tcl list of arguments to fBtclshfR or fBwishfR.
- .TP 6
- fBargv0fR
- The script that fBtclshfR or fBwishfR started executing (if it was
- specified) or otherwise the name by which fBtclshfR or fBwishfR
- was invoked.
- .TP 6
- fBtcl_interactivefR
- Contains 1 if fBtclshfR or fBwishfR is running interactively (no
- script was specified and standard input is a terminal-like device), 0
- otherwise.
- .PP
- The fBwishfR executably additionally specifies the following global
- variable:
- .TP 6
- fBgeometryfR
- If set, contains the user-supplied geometry specification to use for
- the main Tk window.
- .SH "SEE ALSO"
- eval(n), tclsh(1), wish(1)
- .SH KEYWORDS
- arithmetic, bytecode, compiler, error, environment, POSIX, precision, subprocess, variables