Я пытаюсь использовать run tclhttpd in a slave interpreter, но слегка модифицирован, чтобы работать в tclkit. Код ниже «работает» (я могу нажать http://localhost:8015), но никогда не достигает строки puts внизу, потому что «сервер не возвращается, он входит в [vwait forever]». Но когда я пытаюсь «трюк после 0», например. добавив «после 0» к строке «$ httpd eval $ cmd», сервер не запускается вообще, поэтому я предполагаю, что «ошибки должны обрабатываться bgerror»Как использовать Tcl (inter) bgerror
Однако я не могу найти хорошие примеры того, как использовать bgerror, плюс мои исследования показывают, что в настоящее время конвенция заключается в использовании «interp bgerror». Посмотрите первую пару примеров, возвращенных http://www2.tcl.tk/_/gsearch?S=bgerror; первая ссылка содержит словосочетание «заполнить полезные трюки и примеры использования bgerror», но затем нет образцов, которые я могу различить, как применить, а вторая ссылка завершает «Я заинтересован в примерах, как это предполагается использовать».
package require starkit
starkit::startup
set httpd_args [list]
set httpd [interp create]
$httpd eval "set argc [llength $httpd_args]"
set cmdargv "set argv [list $httpd_args ]"
$httpd eval "set topdir $starkit::topdir"
$httpd eval $cmdargv
set cmd [list source [file join $starkit::topdir bin/httpd.tcl]]
$httpd eval $cmd
puts "if seeing this controlled has returned"
Hi George, Почему вы хотите ударить по строке «puts»? Вы хотите регистрировать информацию или хотите управлять ошибками? Я потерян, как вы говорите о путях и bgerror. –
Строка puts просто так, что я могу быть уверен, что после запуска tclhttpd с использованием отдельного интерпретатора я могу выполнить другие действия, несмотря на то, что исходный код tclhttpd заканчивается на «vwait forever». Вы можете игнорировать это, когда дело доходит до использования bgerror. –