Provided by: manpages-zh_1.5.2-1.1_all bug

NAME

       tclvars - Tcl 使用的变量

描述 DESCRIPTION

       Tcl     库自动的建立和管理下列全局变量。除了下面专做说明的地方之外,对特定于应用的代码和用
       户,这些变量通常应当作为只读的来对待。

       env    Tcl      把这个变量维护为一个数组,它的元素是这个进程的环境变量。读取一个元素将返回
              相应的环境变量的值。设置这个数组的一个元素将修改相应的环境变量,如果它不存在则建立
              一个新的。删除     env 的一个元素将删除相应的环境变量。对 env      数组的变更将影响
              通过象  exec  这样的命令传递给子进程的环境变量。如果删除了整个     env 数组,则 Tcl
              将停止监视 env     访问并且将不更新环境变量。
              在 Windows 下,任何大小写形式的环境变量 PATH 和  COMSPEC 都被自动转换成  大写的。例 │
              如,PATH   环境变量可以被操作系统导出为“path”、“Path”、“PaTh”、  等,这导致其他简单 │
              Tcl 代码必须支持许多特殊的写法。Tcl  继承的所有其他 环境变量保持不变。
              在 Macintosh 上,Tcl  把环境变量构造为非现存的全局环境变量。为 Tcl   建立的环境变量
              包括:

              LOGIN  它持有 Macintosh 的 Chooser 名字。

              USER   它也持有 Macintosh 的 Chooser 名字。

              SYS_FOLDER
                     到系统目录的路径。

              APPLE_M_FOLDER
                     到 Apple 菜单目录的路径。

              CP_FOLDER
                     到控制面板目录的路径。

              DESK_FOLDER
                     到桌面目录的路径。

              EXT_FOLDER
                     到系统扩展目录的路径。

              PREF_FOLDER
                     到偏好目录的路径。

              PRINT_MON_FOLDER
                     到打印监控器目录的路径。

              SHARED_TRASH_FOLDER
                     到网络垃圾箱目录的路径。

              TRASH_FOLDER
                     到垃圾箱目录的路径。

              START_UP_FOLDER
                     到启动目录的路径。

              HOME   到应用程序的缺省目录的路径。

              你还可以为  Macintosh 建立你自己的环境变量。叫做 Tcl Environment Variables 的一个文
              件将被放置到       Mac       系统文件夹中的偏好文件夹中。这个文件中的每行的形式都是
              VAR_NAME=var_data。

              最后的选择是把环境变量放置到这个应用的叫做 Tcl Environment Variables 的一个`STR#'资
              源文件中。这被认为是更象“Mac 式”而不是 一个 Unix 式样的环境变量文件。`STR#'资源中每
              个条目有与上述相同的格式。源 代码文件 tclMacEnv.c 包含 env 机制的实现。这个文件包含
              许多 #define ,它们允许你定制 env 机制来适合你的应用的需要。

       errorCode
              在发生了一个错误之后,设置这个变量为持有关于错误的补充信息,它的形式易于用程序处
              理。errorCode 由有一个或多个元素的一个 Tcl 列表组成。这个列表的第一个元素标识错误的
              一个一般的类别,并决定列表余下部分的格式。Tcl 核心为 errorCode 使用下列格式;个别应
              用可以定义补充的格式。

              ARITH code msg
                     在发生一个算术错误的时候使用这个格式(例如,在  expr  命令中尝试除以零)。Code
                     标识准确的错误而   msg    提供一个人可阅读的对错误的描述。Code    将是下列之
                     一:DIVZERO  (尝试除以零)、DOMAIN  (如果函数的一个参数在它的作用域之外,比如
                     acos(-3))、IOVERFLOW (整数溢出)、 OVERFLOW (浮点数溢出)、或 UNKNOWN  (如果不
                     能确定错误的原因)。

              CHILDKILLED pid sigName msg
                     在子进程被一个信号所终止的时候使用这个格式。errorCode 的第二个元素是这个进程
                     的标识符(十进制数)。第三个元素标识导致进程终止的信号的符号名字;它将是在文件
                     signal.h  中包含的名字之一,比如 SIGPIPE。第四个元素是一个描述这个信号的人可
                     阅读的短消息,比如对 SIGPIPE是“write on pipe with no readers”。

              CHILDSTATUS pid code
                     在子进程以非零状态退出的时候使用这个格式。errorCode 的第二个元素是这个进程的
                     标识符(十进制数),而第三个元素是这个进程返回的退出代码(也是十进制数)。

              CHILDSUSP pid sigName msg
                     在子进程被一个信号所挂起的时候使用这个格式。errorCode 的第二个元素是这个进程
                     的标识符,是一个十进制数。第三个元素识导致进程挂起的信号的符号名字;它将是在
                     文件signal.h 中包含的名字之一,比如 SIGTTIN。 第四个元素是一个描述这个信号的
                     人可阅读的短消息,比如对 SIGTTIN 是“background tty read”。

              NONE   对除了返回错误消息之外没有其他可获得的补充信息的错误使用这个格式。在这种情况
                     下 errorCode 将由只有一个单一元素的一个列表组成,这个元素的内容是 NONEPOSIX errName msg
                     如果 errorCode 的第一个元素是 POSIX,则错误发生在一个 POSIX 内核调用期间。这
                     个列表的第二个元素将包含发生的错误的符号名字,比如  ENOENT;它将是在包含文件
                     errno.h  中定义的值之一。这个列表的第三个元素是对应于 errName 的一个人可阅读
                     的消息,比如对 ENOENT 是“no such file or directory”。

              要设置 errorCode,应用应当使用库过程比如 Tcl_SetErrorCodeTcl_PosixError,或者调
              用  error 命令。如果使用了这些方法之一,则 Tcl 解释器将在下个错误之后重置这个变量为
              NONEerrorInfo
              在一个错误发生之后,这个字符串将包含标识在最新近的错误发生时正在执行的 Tcl 命令和过
              程的一行或多行。它的内容使用栈跟踪的形式,展示在错误发生时调用的各个嵌套的  Tcl  命
              令。

       tcl_library
              这个变量持有包含系统 Tcl   脚本库的一个目录的名字,比如用于自动装载的那些目录。info
              library  命令返回这个变量的值。关于 Tcl  脚本库的详情请参见 library 手册条目。 除了
              Tcl  脚本库之外,每个应用或包通常都有它自己的特定于应用的脚本库;每个应用都应该设置
              名字象  $app_library 这样的一个全局变量(这里的 app  是这个应用的名字)来持有这个应用
              的库目录的网络文件名字。在建立解释器的时候,通过查找许多不同目录直到找到包含一个适
              当的 Tcl 启动脚本的目录,来设置 tcl_library 的最初的值。如果 TCL_LIBRARY 环境变量存
              在,则首先访问它指名的目录。如果 TCL_LIBRARY 未被设置或不参照一个适当的目录,则 Tcl
              检查基于在其中编译(compiled-in)的缺省位置的其他一些目录、包含应用的二进制文件的位
              置、和当前工作目录。

       tcl_patchLevel
              在建立解释器的时候  Tcl  初始化这个变量来持有给出当前的  Tcl     补丁级别的一个字符
              串,比如  7.3p2 是Tcl 7.3 的第二次官方补丁,而 7.4b4 是 Tcl 7.4 的第四次 beta    发
              布。info patchlevel 命令返回这个值。

       tcl_pkgPath                                                                                │
              这个变量持有一个目录的列表,它一般指示把包安装到哪里。在 Windows 上不使  用它。它典 │
              型的包含一个或两个条目;如果它包含两个条目,第一个通常是依赖于    平台的包的目录(例 │
              如,共享库的二进制文件)而第二个通常是平台无关的包的目录  (例如,脚本文件)。典型的把 │
              包安装为在   $tcl_pkgPath 中的一个条目的 一个子目录。在 $tcl_pkgPath 中的目录缺省的 │
              包含在 auto_path 变量中,所以 package require  命令期间自动的在它们和它们的直接子目 │
              录中查找包。注意:      不希望应用修改      tcl_pkgPath。在启动时它的值被添加     到 │
              auto_path;对 tcl_pkgPath 的变动不会反映到 auto_path   中。如果你想让 Tcl  来在额外 │
              的目录中查找包,你应该把这 些目录的名字添加到 auto_path,而不是 tcl_pkgPathtcl_platform
              这是一个关联数组,它的元素包含关于应用在其上运行的平台的信息,比如操作系统的名
              字、它的当前发行号、和机器的指令集。总是定义下列元素,但是如果 Tcl 不能检索到任何有
              关的信息,则它们的值将是空串。除此之外,扩展和应用可以向这个数组添加补充的值。预先
              定义的元素是:

              byteOrder                                                                           │
                     这个机器的本地字节序: littleEndianbigEndiandebug  如果这个变量存在,则编译解释器时启用了调试符号。只在  Windows   上存在这个变
                     量,扩展作者可以依赖于所装载的 C 运行时库来指定装载哪个包。

              machine
                     这个机器执行的指令集,比如   intelPPC68k、或sun4m。在   UNIX  机器上,用
                     uname -m 返回这个值。

              os     在这个机器上运行的操作系统的名字,比如  Windows  95Windows   NTMacOS、或
                     SunOS。  在 UNIX 机器上,用 uname -s 返回这个值。在 Windows 95 和 Windows 98
                     上,返回的值将是 Windows 95 来提供更好的对 Windows  95  的反向兼容;要区别二
                     者,请检查 osVersionosVersion
                     在这个机器上运行的操作系统的版本号。在  UNIX  机器上,用  uname  -r 返回这个
                     值。在 Windows 95 上,版本将是 4.0;在 Windows 98 上,版本将是 4.10。

              platform
                     windowsmacintosh、或 unix 之一。它表示这个机器的一般操作环境。

              threaded
                     如果这个变量存在,则编译这个解释器时启用了线程。

              user   它基于在平台上获得的登录信息标识当前用户。在 Unix 它源自 USER 或 LOGNAME  环
                     境变量,在 Windows 和 Macintosh 上源自 GetUserName。

       tcl_precision
              这个变量在把浮点数转换成字符串时控制生成的数字的数目。它缺省的是 12。对于 IEEE 浮点 │
              数   17    位数字是“最佳的”,这样允许双精度值在二进制和字符串之间来回转换而不丢失信 │
              息。但是,使用   17  位数字将禁止任何舍入,这将生成更长,而更不直观的值。例如,expr1.4 在设置 tcl_precision 为 17 时返回 1.3999999999999999,而在设置 tcl_precision 为 │
              12 时返回 1.4 。                                                                    │
              在一个进程中的所有解释器共享一个单一的  tcl_precision  值: 在一个解释器中改变它将同 │
              样影响所有其他解释器。但是,不允许安全解释器修改这个变量。                          │

       tcl_rcFileName
              在初始化期间使用这个变量来指示特定于用户的启动文件的名字。如果在特定于应用的初始化
              中设置了它,则  Tcl 启动代码将检查这个文件是否存在,并且如果它存在的话则 source (载
              入)它。例如,对于 wish ,这个变量被设置成给  Unix  的  ~/.wishrc  和给  Windows  的
              ~/wishrc.tcltcl_rcRsrcName
              这个变量只在  Macintosh  系统上使用。在初始化期间使用这个变量来指示位于应用或扩展资
              源  fork 中的一个特定于应用的 TEXT   资源的名字。如果特定于应用的初始化设置了它,则
              Tcl  启动代码将检查资源是否存在,如果存在则 source   它。例如,Macintosh wish  应用
              设置这个变量为 tclshrctcl_traceCompile
              设置这个变量的值来控制在字节码编译期间显示多少跟踪信息。缺省的,tcl_traceCompile
              是零且不显示信息。设置  tcl_traceCompile 为 1,在编译一个过程或顶层命令的时候在标准
              输出上生成一行总结。设置它为        2,在标准输出上详细的列出在每次编译期间散发(???
              emit)的字节码指令。在跟踪怀疑是 Tcl 编译器的问题时很有用。在把现存代码转换成 Tcl8.0
              时也偶尔有用。

       tcl_traceExec
              设置这个变量的值来控制在字节码执行期间显示多少跟踪信息。缺省的,tcl_traceExec    是
              零而不显示信息。设置  tcl_traceExec 为 1,在每次调用一个 Tcl 过程的时候在标准输出上
              生成一行跟踪。设置它为 2,在用命令的名字和它的参数调用任何Tcl  命令的时候,生成一行
              输出。设置它为          3,生成一个详细的跟踪,展示每个字节码指令的执行结果。注意在
              tcl_traceExec 是 2 或 3 的时候,不展示象 set 和 incr 这样已经被整个替换为一个字节码
              指令序列的命令。在跟踪怀疑是  Tcl  编译器和解释器的问题时很有用。在把现存代码转换成
              Tcl8.0 时也偶尔有用。

       tcl_wordchars
              这个变量的值是一个正则表达式,设置它来控制认把什么字符认为是“字”字  符。例如在   Tk
              的文本框中用双击来选择一个字。它是平台相关的。在  Windows 上,它缺省为 \S,意思是除
              了 Unicode  空格字符之外的任何字符。其他 平台上缺省为 \w,它是任何    Unicode  字字
              符(数字、字母、下划线)。

       tcl_nonwordchars
              这个变量的值是一个正则表达式,设置它来控制认把什么字符认为是“非字”     字符。例如在
              Tk 的文本框中用双击来选择一个字。它是平台相关的。在 Windows 上,它缺省为 \s,意思是
              任何 Unicode 空格字符。其他平台上缺 省为 \W,它是除了 Unicode 字字符(数字、字母、下
              划线)之外的任何字符 。

       tcl_version
              在建立解释器的时候,Tcl 初始化这个变量来持有这个版本的 Tcl 的版本号,形式是 x.y。对
              x  的变更表示可能导致不兼容的较大的变化,对 y  的变更表示保持反向兼容的小增强和缺陷
              修理,info tclversion 命令返回这个变量的值。

参见 SEE ALSO

       eval(n)

关键字 KEYWORDS

       arithmetic,  bytecode,  compiler,  error,  environment,  POSIX,   precision,   subprocess,
       variables

[中文版维护人]

       寒蝉退士

[中文版最新更新]

       2001/12/10

《中国 Linux 论坛 man 手册页翻译计划》:

       http://cmpp.linuxforum.net