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