From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1998-06-10T19:09:08+09:00 Subject: [ruby-dev:2843] Re: [BUG] IO#eof? when Thread using けいじゅ@日本ラショナルソフトウェアです. In [ruby-dev :2842 ] the message: "[ruby-dev:2842] Re: [BUG] IO#eof? when Thread using ", on Jun/10 18:07(JST) Yukihiro Matsumoto writes: >まつもと ゆきひろです >|何で, eof?を使っているかというとIO#readを使っているからなんですね. >|# getc/getsでは使う必要ないでしょうしね. >readでも要らないです. そうかも知れないんですけどね. >| sock.read(len) >|とした場合, 途中でEOFが来た時は同なる仕様になっているんですか? > >nilが返ります. 途中までの文字列は読めないの? >|あと, EOFErrorって例外がありますよね. あれは, どんな時に発生します? > >readline/readchar/sysreadでEOFに当たった時です.改めて考える >とsysreadは検討の余地ありですね. いまは, 他のメソッド(read/gets/getc)はnilを返しますが, そうじゃなく例 外を返してくれた方が, 便利なことも多いような: 例えば, readするたびにエラーチェックするのいやなんですよね. begin id, = io.read(2).unpack("n") size, = io.read(2).unpack("n") mes = io.read(size) rescue EOFError ... end 見たく書きたいなあ... 今の仕様では, いちいちnilかどうか調べなくてなならなくて, めんどくさい んですよね.... __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju@rational.com <<---