私は、Tclを組み込んだ小さなシェルアプリケーションを用意して、Tclコードの一部を実行しています。 Tclインタプリタは、Tcl_CreateInterpを使用して初期化されます。すべてが非常に簡単です:組み込みTclランタイムによって実行されるハンドル終了コマンド
- ユーザーがTclコマンドコマンドは、評価のためTcl_Evalに渡される
- 繰り返し
しかし有効なTclのあるユーザーが「終了」、もしTclインタプリタとシェルアプリケーションはすべて自動的に終了します。
Q:Tclインタープリタからのこの出口信号を捕まえることができる方法はありますか?私は本当にすべてのユーザーコマンドをチェックしたくないです。私はTcl_CreateExitHandlerを試しましたが、動作しませんでした。
ありがとうございます。
* Tclの標準化されたライブラリ[その名前でよく知られている](http://tcllib.sourceforge.net/)のため、 "tcllib"のタイトルが修正され、参照が削除されました。あなたが実際に参照しているように見えるのは、あなたのプログラムにTclランタイムを埋め込むことです。 – kostix
'Tcl_CreateExitHandler'は、終了をトラップし、さもなければ慌ただしくぶら下がるリソース(例えば、データベース接続)を解放するためのものです。それは起こってからの出口を止めることはできません。 –
これは実際に私がやりたいことです - 終了時にリソースを解放してください。この場合、なぜ 'Tcl_CreateExitHandler'は動作しませんか? – ilya1725