Posted to tcl by kap at Tue Oct 28 00:30:45 GMT 2014view raw
- oo::class create redirect {
- variable File
- constructor {filename} {
- set File [open $filename w]
- }
- method initialize {handle mode} {
- if {$mode ne "write"} {error "can't handle reading"}
- return {finalize initialize write}
- }
- method finalize {handle} {
- }
- method write {handle data} {
- puts $File $data
- }
- destructor {
- catch {close $File}
- }
- }
- # Redirect stdout to file
- chan push stdout [redirect new foo.txt]
- chan configure stdout -buffering none
- # Test
- puts 1
- puts 2
- puts 3
- puts -nonewline a
- puts -nonewline b
- puts -nonewline c