From: matz@... (Yukihiro Matsumoto) Date: 2004-01-02T01:53:00+09:00 Subject: [ruby-dev:22472] Re: ARGF.each {|x| ARGF.eof? } and number of Ctrl-Ds. まつもと ゆきひろです In message "[ruby-dev:22469] ARGF.each {|x| ARGF.eof? } and number of Ctrl-Ds." on 04/01/01, Tanaka Akira writes: |次のプログラムは、a^D^D と入力すると終了します。この場合終了には ^D は |2つ必要になっています。最初の ^D は行バッファの flush なのでプログラム |に送られた EOF は 1回です。 |挙動を比較すると、ARGF.each {|x| ARGF.eof? } が他と異なるのですが、いっ |たいどちらが意図された挙動なのでしょうか? ARGF.eof?が副作用を持っていました。 それはそれとして、なぜSTDINは3度^Dが必要なんでしょう? バッファのフラッシュで1度 バッファ内容をプログラムに送るので1度(最初のyield) eachを終了させるのに1度 のように見えるんだけど。emacs上のデバッガからは1度eofを送る と終了しますから、terminalがなにかしているのだと思うのですが。 まつもと ゆきひろ /:|)