【发布时间】:2012-03-29 00:02:32
【问题描述】:
我有一个嵌入Tcl 的小型shell 应用程序来执行一些Tcl 代码。 Tcl 解释器使用 Tcl_CreateInterp 初始化。一切都很简单:
- 用户键入 Tcl 命令
- 命令被传递给 Tcl_Eval 进行评估
- 重复
但是如果用户键入“exit”,这是一个有效的 Tcl 命令,整个事情 - Tcl 解释器和我的 shell 应用程序 - 会自动退出。
问:有什么方法可以捕捉到来自 Tcl 解释器的退出信号。我真的不想检查每个用户命令。我试过Tcl_CreateExitHandler,但没用。
非常感谢。
【问题讨论】:
-
修复了标题并删除了对“tcllib”的引用,因为这是一个标准化的库for Tcl is commonly known by that name。您似乎真正指的是将 Tcl 运行时嵌入到您的程序中。
-
Tcl_CreateExitHandler用于捕获出口并释放资源(例如,数据库连接),否则会令人讨厌。它不能阻止退出的发生。 -
这实际上正是我想要做的——在退出时释放资源。为什么
Tcl_CreateExitHandler在这种情况下不起作用?
标签: tcl interpreter