2013-07-27 2 views
0

я должен вернуть команду, чтобы вызвать мой RTL компилятор (каденция Tool) с помощью TCL линии сценарияОшибка в TCL скрипт

puts [exec rc -f script.g ] 

я получаю ошибку, как процесс прерывания ребенка. в то время как если вы пишете прямо на моей консоли, чтобы вызвать инструмент $ -rc -f script.g, он становится совершенно exectuded.

+0

Что такое код выхода? Этот процесс записывается в стандартный вывод? –

+1

Что такое _exactly_ является сообщением об ошибке? – nurdglaw

+0

Инструмент компилятора не может вызвать и вернуть ошибку: дочерний процесс прерван –

ответ

0

exec возвращает код ошибки, если:

  • в exec'ed команда возвращает с ненулевым статусом
  • или печатает на стандартный вывод

ли это

if {[catch {exec rc -f script.g} output] == 0} { 
    # normal exit status 
    puts $output 
} elseif {$errorCode eq NONE} { 
    # normal exit status, but some output to stderr (contained in $output) 
    puts $output 
} else { 
    # some error condition. 
    # see http://wiki.tcl.tk/1039 for ways to handle 
    puts "some error occurred: $errorCode" 
} 
+0

Лучшим решением может быть просто перенаправление стандартной ошибки. Трудно сказать, не зная реального режима отказа. –

Смежные вопросы