Как заставить интерпретатор Tcl исходить из файла и одновременно открывать канал из команды оболочки?

Есть ли способ заставить интерпретатор Tcl использовать файл и открыть канал из команды оболочки параллельно?

Более подробно, у меня есть графический интерфейс, созданный из tcl/tk. Я хочу, чтобы мой tcl-скрипт создавал файл настроек для переменных графического интерфейса и в то же время открывал канал из [tclsh settings_file] для перенаправления вывода на стандартный вывод графического интерфейса.

Большое спасибо!


person user1616295    schedule 29.01.2013    source источник


Ответы (1)


Я не уверен, что запуск обработки команды настроек в подпроцессе - хорошая идея. Может быть, лучше использовать безопасный интерпретатор?

Перехватив вывод, вы можете выбрать способ выполнения захвата stdout, а затем отобразить содержимое захваченного буфера в графический интерфейс (после использования encoding convertfrom для получения символов назад, если вы используете мое решение этой проблемы), но у вас есть общая проблема, заключающаяся в том, что пользовательский код может блокировать вещи, если для его выполнения требуется много времени. Вы можете обойти это, используя потоки, но я подозреваю, что проще избежать сложности и просто позволить плохо написанному коду установки вызывать проблемы, которые пользователю придется исправлять. (Команда catch может помочь вам устранить любые явные ошибки во время поиска файла настроек.)

person Donal Fellows    schedule 29.01.2013