Tôi có một ứng dụng vỏ nhỏ nhúng Tcl để thực thi một số bộ mã Tcl. Trình thông dịch Tcl được khởi tạo bằng Tcl_CreateInterp. Mọi thứ đều rất đơn giản: các loạiXử lý lệnh thoát được thực thi bởi thời gian chạy Tcl nhúng
- dùng Tcl lệnh
- lệnh được thông qua để Tcl_Eval để đánh giá
- lặp lại
Nhưng nếu người sử dụng đánh 'exit', mà là một Tcl hợp lệ lệnh, toàn bộ điều - trình thông dịch Tcl và ứng dụng trình bao của tôi - tự động thoát.
Q: Có cách nào tôi có thể bắt tín hiệu thoát này đến từ thông dịch viên Tcl hay không. Tôi thực sự không muốn kiểm tra mọi lệnh của người dùng. Tôi đã thử Tcl_CreateExitHandler, nhưng nó không hoạt động.
Cảm ơn rất nhiều.
Cố định tiêu đề và các tham chiếu đã xóa thành "tcllib" vì một thư viện chuẩn * cho * Tcl [thường được gọi bằng tên đó] (http://tcllib.sourceforge.net/). Những gì bạn dường như thực sự đề cập đến là nhúng thời gian chạy Tcl vào chương trình của bạn. – kostix
'Tcl_CreateExitHandler' là để bẫy các lối thoát và phát hành tài nguyên (ví dụ: kết nối cơ sở dữ liệu) nếu không treo xung quanh một cách nhanh chóng. Nó không thể ngăn chặn một lối thoát xảy ra. –
Đó thực sự chính xác là những gì tôi muốn làm - giải phóng tài nguyên khi thoát. Tại sao 'Tcl_CreateExitHandler' không hoạt động trong trường hợp này? – ilya1725