Provided by: manpages-zh_1.6.3.6-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 位數字將禁止任何舍入,這將生成更長,而更不直觀的值。例如,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