In message <200005121430.XAA68768 / mail2.os.xaxon.ne.jp>
kjana / os.xaxon.ne.jp writes:

> 考えてたのは
> 
>     buf = "\0"*256
>     inf.read_with_buf(buf)
> 
> がほぼ
> 
>     fread(RSTRING(buf)->ptr, 1, RSTRING(buf)->len, inf);
> 
> になるというもの.返り値は実際に読み込んだバイト数.
(略)
> だもんで,一度作ったオブジェクトが必ずそのまま使いまわされる,と.もち
> ろんこれはループ中で何度も同じ大きさのブロックの読み込まないといきてこ
> ないので,だいぶ特定用途向けになってしまいます.

とりあえず拡張ライブラリで書いてみました.興味のある方は

  http://www.os.xaxon.ne.jp/~kjana/ruby/read_in.tar.gz

として置いときますのでどうぞ.ドキュメントも何もないですが,まあなんと
なくわかるでしょう :-)

# IO#read_in を上記のように使う.EOF にあたると nil を返すとこだけ違う
# のかな.


io.c で定義されている関数一つとマクロ二つをコピーして使っています.関
数の方はいかにも内部用,という感じですが,マクロの方は公開しても良いの
ではないでしょうか?

# io_fread(),READ_DATA_PENDING,READ_CHECK.


あれは要するに非同期 IO を実現するのに使っている,と思って良いのですよ
ね? IO のメソッドにしたので,組み込みのメソッドとそれなりに動作をあわ
せようとして利用しているのですが.


-- 
柳川和久 @ 東大阪市 . 大阪府                                  June 22, 2000
依存の終わり 依存への依存の終わり それは個の誕生