Я запускаю интерактивный интерпретатор tcl, вызывая Tcl_main() и беря там некоторые команды tcl. После этого я хочу закрыть интерпретатор tcl и возобновить свою программу. Однако, когда я набираю «exit», он выйдет из всей программы. Есть ли способ выйти из интерпретатора tcl и продолжить мою программу? Благодарю.Могу ли я возобновить свою программу после завершения Tcl_Main()
ответ
Функция Tcl_Main()
не предоставляет никакого способа возобновления кода после его окончания; это удобная оболочка для обработки простых программ, так что вам не нужно беспокоиться о таких вещах, но эта оболочка ограничена несколькими способами, и одна из них заключается в том, что вы не можете делать то, что вы пытаетесь сделать , (В конце функции он вызывает Tcl_Exit()
.)
Но вам не нужно использовать Tcl_Main()
! Он просто использует публичный API Tcl (за некоторыми исключениями, которые, вероятно, не имеют для вас значения). Вы можете дублировать все, позвонив (приблизительно):
Tcl_FindExecutable(argv[0]); // ONCE PER PROCESS; INITIALISES TCL C LIBRARY
Tcl_Interp *interp = Tcl_CreateInterp();
// ... now in your loop evaluate code, perhaps from the user ...
Tcl_Eval(interp, "some code here");
// ...
Tcl_DeleteInterp(interp);
// Carry on as normal
Там нет большой магией. Просто инициализируйте библиотеку, создайте интерпретатор, оцените свой код там (возможно, после получения его от пользователя, придумайте свой собственный цикл считывания, если хотите или закодируйте его в Tcl), а затем удалите интерпретатор, когда закончите.
Это звучит неплохо. Большое спасибо. –
Я предлагаю вам предоставить свой собственный 'exit', который устанавливает флаг, который разбивает цикл и вызывает [' Tcl_CancelEval'] (http://tcl.tk/man/tcl8.6/TclLib/Cancel.htm). –
- 1. Как я могу закрыть свою программу после завершения в python
- 2. Я хочу приостановить и возобновить свою программу
- 3. Могу ли я распараллелить свою программу?
- 4. Возобновить программу python после исключения?
- 5. Как я могу продолжить свою программу после запроса ввода пользователя?
- 6. Как я могу сделать свою программу быстрее?
- 7. Как я могу оптимизировать свою программу?
- 8. Как я могу настроить свою программу
- 9. Как я могу ускорить свою программу Perl?
- 10. Как я могу оптимизировать свою программу javascript?
- 11. Как я могу ускорить свою программу python?
- 12. Как я могу исправить свою программу?
- 13. Как я могу улучшить свою программу палидрома?
- 14. Как я могу запустить свою программу?
- 15. Почему я не могу запустить свою программу
- 16. Почему я не могу закончить свою программу?
- 17. Могу ли я запустить свою программу .NET в контейнере?
- 18. Могу ли я распространять свою программу MATLAB как открытый источник?
- 19. Могу ли я распространять свою программу python по цене?
- 20. Могу ли я выбрать свою программу с помощью процессора?
- 21. Могу ли я оптимизировать свою программу java, переместив массив 2d?
- 22. Возобновить событие щелчка после завершения регистрации
- 23. Я прищурился, как я могу удалить свою программу?
- 24. Если я оставлю свою Java-программу на ночь, я получаю аномальную ошибку завершения процесса в java.exe
- 25. Как я могу заставить свою программу ждать TouchEvent в Android
- 26. Как я могу читать свою программу, обновленную в текстовом файле?
- 27. Как я могу ускорить свою программу, созданную в Jupyter Notebook?
- 28. где я могу поместить свою мою программу javascript после того, как я написал ее в блокноте
- 29. Где я могу добавить код таймера в свою программу?
- 30. Когда я запускаю свою программу, она выключается
'exit' завершит процесс. –