该脚本调用了Tclx中的dup命令
package require Tclx
set fileid ""
proc log {msg} {
global fileid
if {$fileid == ""} {
puts stdout "$msg"
} else {
puts $fileid "$msg"
}
}
proc proc_name {} {
log "a1##########"
sleep 10
log "a2##########"
sleep 10
log "a3##########"
sleep 10
log "a4##########"
sleep 10
log "a5##########"
sleep 10
log "a6##########"
}
proc run_proc {} {
#global fileid
if {[catch {exec killall -9 tail} result]} {
puts "error message:$result"
}
set fileid [open run.log w]
exec tail -f run.log &
#fcntl $fileid NOBUF 1
fconfigure $fileid -buffering none