From: Shin-ichiro Hara Date: 1999-07-19T13:00:15+09:00 Subject: [ruby-dev:7373] Re: Ruby 1.3.5 原です。 |まつもと ゆきひろです ||ファイルサイズが 0 の場合はあの箇所の前ですでに "" を返してしまってい ||ますから、常に "" となるのですが、どちらかというと、上記の例のような動 ||作にあわせ、初回のみ "" を返し、2回目以降は nil というのが良さそうで ||すが、いかがでしょうか。 || ||ただ、ファイルサイズが 0 の場合、それをどうやるかですね。 | |feof(3)を使ってすでにEOFを検出した場合にはnilを返すことで実 |現できそうです。feof(3)を使うようにしたついでに IO#eof? もこ |れを利用して、すでに見付かっているEOFの検出を行うことにしま |した。 今の所、青山さんの [ruby-dev:7364] の「マニュアル変更」が結論でして、 0 バイトファイルは何回 read (引数なし)しても "" を返す様にしたらい いのではないかと思います。[ruby-dev:7340] でいえば、"foo", nil, nil ではなくて、"foo", "", "" となるべきであるというのが一応の結論です。 ファイルポインタの位置という情報以外に、すでに EOF を検出したか否かと いう情報をを保持する必要は無いのではないかな。組み込みメソッド内部で利 用するのはいいけど、ユーザーに見えなくていいのでは? あと read(0) については検討中なんですが、まつもとさんの御意見は如何に?