From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1998-06-11T16:13:17+09:00 Subject: [ruby-dev:2846] Re: [BUG] IO#eof? when Thread using けいじゅ@日本ラショナルソフトウェアです. In [ruby-dev :2845 ] the message: "[ruby-dev:2845] Re: [BUG] IO#eof? when Thread using ", on Jun/11 15:06(JST) Yukihiro Matsumoto writes: >まつもと ゆきひろです >|>| sock.read(len) >|>|とした場合, 途中でEOFが来た時は同なる仕様になっているんですか? >|>nilが返ります. >|途中までの文字列は読めないの? > >あ,すいません.まずlenより身時かい文字列が返って,次に読み >込んだ時にnilが返ります. なるほど. 嬉しいか嬉しくないか微妙なところですね. 必ず決まったサイズだけ読んでくれないなら, sysreadと同じじゃん? って思っ ちゃうのですが... >今はgets/getc/readがnilをその他が例外を返すようにしてます. >気になるのはgetsにはreadline,getcにはreadcharという「例外発 >生版」があるのにreadにはそれに対応するものがないということで >すね.もっともです. > >以下のいずれが望ましいと思いますか? > > * readはEOFErrorを発生するようにする > * readに対応するナニカを作る > >ご意見お待ちしてます. 上の話しと絡みますよね. このままだとsysreadのめんどくさいところをひき ずっていることになりますので, その規定のサイズだけ読み込めなかったら, 例外を出して, EOFError.restsに 最後に読み込んだ文字列をセットする. というのはどう? __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju@rational.com <<---