loadTk(3tk) Tk Built-In Commands loadTk(3tk)

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
8.0 Tk