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 将
由 只 有 一 个 单
一 元 素 的 一 个
列 表 组 成 , 这
个 元 素 的 内 容
是 NONE。
POSIX errName msg 如 果
errorCode 的 第 一 个
元 素 是 POSIX, 则
错 误 发 生 在 一
个 POSIX 内 核 调 用 期
间 。 这 个 列 表
的 第 二 个 元 素
将 包 含 发 生 的
错 误 的 符 号 名
字 , 比 如 ENOENT;
它 将 是 在 包 含
文 件 errno.h 中 定 义
的 值 之 一 。 这
个 列 表 的 第 三
个 元 素 是 对 应
于 errName 的 一 个 人
可 阅 读 的 消 息
, 比 如 对 ENOENT 是
“no such file or directory”。 要
设 置 errorCode, 应 用
应 当 使 用 库 过
程 比 如 Tcl_SetErrorCode 和
Tcl_PosixError, 或 者 调
用 error 命 令 。 如
果 使 用 了 这 些
方 法 之 一 , 则 Tcl
解 释 器 将 在 下
个 错 误 之 后 重
置 这 个 变 量 为
NONE。
errorInfo 在
一 个 错 误 发 生
之 后 , 这 个 字
符 串 将 包 含 标
识 在 最 新 近 的
错 误 发 生 时 正
在 执 行 的 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_pkgPath。
tcl_platform 这 是 一 个
关 联 数 组 , 它
的 元 素 包 含 关
于 应 用 在 其 上
运 行 的 平 台 的
信 息 , 比 如 操
作 系 统 的 名 字
、 它 的 当 前 发
行 号 、 和 机 器
的 指 令 集 。 总
是 定 义 下 列 元
素 , 但 是 如 果 Tcl
不 能 检 索 到 任
何 有 关 的 信 息
, 则 它 们 的 值
将 是 空 串 。 除
此 之 外 , 扩 展
和 应 用 可 以 向
这 个 数 组 添 加
补 充 的 值 。 预
先 定 义 的 元 素
是 :
byteOrder │ 这 个 机 器 的 本 地 字 节 序 : littleEndian 或 bigEndian。
debug 如 果 这 个 变 量 存 在 , 则 编 译 解 释 器 时 启 用 了 调 试 符 号 。 只 在 |
Windows 上 存
在 这 个 变 量 ,
扩 展 作 者 可 以
依 赖 于 所 装 载
的 C 运 行 时 库 来
指 定 装 载 哪 个
包 。
machine 这 个 机 器 执
行 的 指 令 集 ,
比 如 intel、 PPC、
68k、 或 sun4m。 在
UNIX 机 器 上 , 用 uname
-m 返 回 这 个 值
。
os 在 这 个 机 器 上 运 行 的 操 作 系 统 的 名 字 , 比 如 |
Windows |
95、 Windows NT、 MacOS、 或 SunOS。 在 UNIX 机 器 上 , 用 uname -s 返 回 这 个 值 。 在 Windows 95 和 Windows 98 上 , 返 回 的 值 将 是 Windows 95 来 提 供 更 好 的 对 Windows 95 的 反 向 兼 容 ; 要 区 别 二 者 , 请 检 查 osVersion。
osVersion 在
这 个 机 器 上 运
行 的 操 作 系 统
的 版 本 号 。 在 UNIX
机 器 上 , 用 uname -r
返 回 这 个 值 。
在 Windows 95 上 , 版 本
将 是 4.0; 在 Windows 98 上
, 版 本 将 是 4.10。
platform
windows、 macintosh、 或 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.tcl。
tcl_rcRsrcName 这 个 变 量
只 在 Macintosh 系 统 上
使 用 。 在 初 始
化 期 间 使 用 这
个 变 量 来 指 示
位 于 应 用 或 扩
展 资 源 fork 中 的 一
个 特 定 于 应 用
的 TEXT 资 源 的 名
字 。 如 果 特 定
于 应 用 的 初 始
化 设 置 了 它 ,
则 Tcl 启 动 代 码 将
检 查 资 源 是 否
存 在 , 如 果 存
在 则 source 它 。 例
如 , Macintosh wish 应 用
设 置 这 个 变 量
为 tclshrc。
tcl_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
关 键 字 KEYWORDS
arithmetic, bytecode, compiler, error, environment, POSIX, precision, subprocess, variables
[中 文 版 维 护 人 ]
寒 蝉 退 士
[中 文 版 最 新 更 新 ]
2001/12/10
《 中 国 Linux 论 坛 man 手 册 页 翻 译 计 划 》 :
跋
本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh