focal (3) tclvars.3tcl.gz

Provided by: manpages-zh_1.6.3.3-2_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 位数字将禁止任何 │
              舍入,这将生成更长,而更不直观的值。例如,expr   1.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

       本页面中文版由中文 man 手册页计划提供。
       中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh