我有一个嵌入Tcl以执行一些Tcl代码的小型shell应用程序。 Tcl解释器使用Tcl_CreateInterp进行初始化。一切都非常简单:由嵌入式Tcl运行时执行的句柄退出命令
- 用户类型Tcl命令
- 命令被传递给Tcl_Eval评估
- 重复
但是,如果用户键入“退出”,这是一个有效的Tcl命令,整个事情 - Tcl解释器和我的shell应用程序 - 自动退出。
问:有没有什么办法可以捕捉到来自Tcl解释器的退出信号。我真的不想检查每个用户的命令。我试过Tcl_CreateExitHandler,但没有奏效。
非常感谢。
修正了标题并删除了对“tcllib”的引用,因为* Tcl [标准库]通常被该名称所知(http://tcllib.sourceforge.net/)。你似乎真正指的是将Tcl运行时嵌入到你的程序中。 – kostix 2012-03-29 08:08:09
'Tcl_CreateExitHandler'用于捕获退出并释放资源(例如数据库连接),否则这些资源会很快地出现。它无法阻止退出的发生。 – 2012-03-29 14:41:13
这实际上正是我想要做的 - 在退出时释放资源。为什么在这种情况下'Tcl_CreateExitHandler'不起作用? – ilya1725 2012-03-29 18:05:22