loadTk - 把 Tk
裝載到一個安全直譯器中。
::safe::loadTk slave ?
-use windowId?
?
-display displayName?
Safe Tk 基於 Safe Tcl
之上,它提供一種機制,允許對自動裝載和安全直譯器的包的受限制和有中介的訪問。Safe
Tk 增加為安全 Tk
操作配置直譯器和把 Tk
裝載到安全直譯器的功能。
::safe::loadTk
命令在指明的直譯器中初始化需要的資料結構並把
Tk
裝載到其中。這個命令返回這個安全直譯器的名字。如果指定了
-use,使用由指定的系統決定的識別符號
windowId
所標識的視窗來包含這個直譯器的
``.''
視窗;它可以是任何有效的
id,最終引用屬於另一個應用的一個視窗。出於方便,如果你想要使用的視窗是應用的一個
Tk
視窗,則你可以使用這個視窗的名字(比如:
.x.y)來替代它的視窗 Id
(
[winfo id .x.y])。在未指定
-use
的時候,為這個安全直譯器的
``.''
視窗建立一個新的頂層視窗。在
X11
上如果你想讓嵌入的視窗使用其他的顯示器而不是預設的那個,可以用
-display
指定它。實現的細節請參見下面的安全要點
(
SECURITY ISSUES) 章節。
請閱讀 Tcl 的
safe
手冊頁來獲悉對 Safe Tcl
做的基本安全考慮。
::safe::loadTk
把從直譯器接受的
tk_library
的值增加到安全直譯器的虛擬路徑上,這樣自動裝載就能在安全直譯器中工作了。
就不信任從直譯器對啟動的陳述而論,Tk
初始化現在是安全的。
::safe::loadTk
註冊從直譯器的名字,這樣在呼叫
Tk 初始化(
Tk_SafeInit)和依次呼叫主直譯器的
::safe::InitTk
的時候,它將返回想要的
argv 等價物(
-use
windowId,正確的
-display
等等...)。
在未使用
-use
的時候,對新建立的頂層視窗進行特殊裝飾,這樣使用者總能意識到呈現的使用者介面來自潛在不安全的程式碼並可以輕易的刪除相應的直譯器。
在 X11 上,有衝突的
-use
和
-display
將生成一個致命的 X
錯誤。
safe(n),
interp(n),
library(n),
load(n),
package(n),
source(n),
unknown(n)
alias, auto-loading, auto_mkindex, load, master interpreter, safe interpreter,
slave interpreter, source
寒蟬退士
2002/05/15
http://cmpp.linuxforum.net
本頁面中文版由中文 man
手冊頁計劃提供。
中文 man 手冊頁計劃:
https://github.com/man-pages-zh/manpages-zh