From: Wakou Aoyama Date: 1999-04-11T18:37:31+09:00 Subject: [ruby-list:13597] Re: telnet.rb STDOUT 青山です。 Sun, Apr 11, 1999 at 05:17:02PM +0900 において WATANABE Hirofumi さん曰く: > それよりも reopen しなきゃいけないというのが hook の主目的です. $ ruby -e ' $t_stdout = open("/dev/tty", "w") T_STDOUT = $t_stdout $t_stdout.print "hogehoge1\n" $t_stdout.reopen(open("/dev/null", "w")) $t_stdout.print "hogehoge2\n" $t_stdout.reopen(T_STDOUT) $t_stdout.print "hogehoge3\n" ' hogehoge1 /tmp/rba00271:7:in `reopen': Bad file descriptor - P@P@ (Errno::EBADF) from /tmp/rba00271:7 なるほど。dup は反則? $ ruby -e ' $t_stdout = open("/dev/tty", "w") T_STDOUT = $t_stdout.dup $t_stdout.print "hogehoge1\n" $t_stdout.reopen(open("/dev/null", "w")) $t_stdout.print "hogehoge2\n" $t_stdout.reopen(T_STDOUT) $t_stdout.print "hogehoge3\n" ' hogehoge1 hogehoge3 この方が使いやすそうですけれど。 STDOUT = $stdout.dup という事で。(って、あ、これだとフックが大変?) > 基本的に stdout は 1 個しかないので telnet.rb のほうでやっぱ > り対処するほうがいいかもしれない. /dev/tty とか言い出すとプ > ラットフォーム依存の問題が出てくるし. そうですね。Trying ... と Connected to だけなので、いっそそっくり削除 しても良さそうな気もしています。 -- 青山 和光 Wakou Aoyama