TCL放流:我能知道什么是流吗?标准输出?标准错误?文件?

时间:2013-12-09 19:14:57

标签: tcl

由于复杂的原因,我必须劫持“看跌”程序。我想根据“流”是什么来做不同的事情

proc myPuts { stream msg } {

      if < stream is stdout >
          ....
      elseif < stream is stderr >
           ...
      else
           ...

}

有没有办法知道stream参数是stdout,stderr还是来自TCL内的文件?

谢谢,

1 个答案:

答案 0 :(得分:1)

据我所知,Tcl中的stdout流是“stdout”,而stderr是“stderr”。如果一个puts $stream "string"的$ stream的值为“stdout”,则转到stdout;与stderr类似。

puts的正常调用将stream参数视为可选;你的myPuts需要做同样的事情,并将缺少的操作数视为标准输出。除此之外,我认为这只是一个问题

if {$stream eq "stdout"} {
    # do your stdout thing
} elseif {$stream eq "stderr"} {
    # do your stderr thing
} else {
    # do your file handle thing
}