Tcl实现Shell中tail命令

风行水上 @ 2013-10-16 16:42:37
标签:

    下面的Tcl代码大体上就是Shell命令tail -f -s 1的效果。

    proc getLines {fp} {
      while {[gets $fp line]>=0} {
        puts $line
      }
     
      if {0 && [eof $fp]} {
        puts "DEBUG: EOF [tell $fp]"
      }
      if {0 && [fblocked $fp]} {
        puts "DEBUG: BLOCKED [tell $fp]"
      }
      after 1000
    }
    
    set file [lindex $argv 0]
    set fp [open $file r]
    fconfigure $fp -block 0
    fileevent $fp readable [list getLines $fp]
    
    vwait forever
    

    上面的eoffblocked仅供测试使用,在本例中没有特别作用。

    标签:

      分享到:
      comments powered by Disqus

      25/27ms