From: Wakou Aoyama Date: 1999-07-18T23:27:03+09:00 Subject: [ruby-dev:7362] Re: Ruby 1.3.5 青山です。 Sun, Jul 18, 1999 at 09:04:04PM +0900 において Shin-ichiro HARA さん曰く: > 引数無し read は名前こそ > read だけど、read(byte) とは全く別のメソッドであって、 略 そうなんですよね。引数無し read については、全く別のメソッドとみなして ドキュメントの方を変更するという事でも良いと思います。 > read [length] > lengthバイト読み込んで,その文字列を返します. lengthが省略 > された時には,EOFまでの 全てのデータを読み込みます. > EOFでnilを返します. read [length] 最大lengthバイト読み込んで,その文字列を返します. EOF(1バイトも読み込めなかった場合)でnilを返します. lengthが省略された時には,EOFまでの全てのデータを読み込みます. EOF(1バイトも読み込めなかった場合)で""を返します. > ピンと来ないのですが、「EOF に達せず、かつ文字列は返ってこない場合」という > 場合は考えなくて良いのでは?そんな時ってあるのかな。 ファイルポインタの位置=ファイルサイズでない場合の read(0) がそれにな るかと。 $ ruby -e 'io = open("2"); p io.stat.size; p io.read(0)' 2 nil # これが「EOFでnilを返します.」に反するわけです. この矛盾に対する案が (3) ですね。 -- 青山 和光 Wakou Aoyama