From: matz@... (Yukihiro Matsumoto) Date: 2002-08-27T16:34:58+09:00 Subject: [ruby-dev:18091] Re: IO.read returns nil with empty file まつもと ゆきひろです In message "[ruby-dev:18090] Re: IO.read returns nil with empty file" on 02/08/27, Tanaka Akira writes: |> % ruby-1.6.6 -e 'p open("zero").read' |> "" |> % ruby-1.6.6 -e 'p open("/dev/null").read' |> nil |> と変だったので、1.6.7で直したました。 |> % ruby-1.6.7 -e 'p open("/dev/null").read' |> "" |> で、ChangeLogを見ると1.7.xのほうも直したつもりでいたけど、直っ |> てなかったようです。うーむ。何を確認したんだろう? | |うぅむ。仕様じゃなくて単なるバグだったのか... な? そうみたいですね。私、情報管理能力ゼロなので。 |In article <1030430201.353849.3324.nullmailer@picachu.netlab.jp>, | matz@ruby-lang.org (Yukihiro Matsumoto) writes: | |> ファイルに対するオフセットはseekからの連想で将来ともバイト単 |> 位になるでしょうし、文字列に対するオフセットは将来には文字単 |> 位になるでしょうから、このAPIはあんまり嬉しくないような気が |> します。 | |たしかにそうかも... と一瞬思ったんですが、ナニかが並んでいるものに対す |るアクセス法として、String が "" と nil を使い分けているのと同様に |Array も [] と nil を使い分けているわけで、IO.read も "" と nil を使い |分けてもおかしくないような気もします。 オフセットの問題がなければ、考慮の余地があると思います。が、 そもそもオフセットがなければnilと""の使い分けもありえないわ けで。 |... うぅむ。考えてみると長さを知るのに stat の結果が信用できないことも |あるからこれは完全には実装不能かもしれません。 そうですね。statでサイズ0に見えても内容のあるファイルも/proc あたりにたくさんありますね。