とみたです。

At Thu, 16 Mar 2000 23:42:16 +0900,
ARIMA Yasuhiro <fit0298 / fitec.co.jp> wrote:

> ruby-1.4.3 を linux-2.0 で使っていて、f.sysread の直後に
> select([f], nil, nil) したところ、バッファは空のはずなのに
> [[f], nil, nil] が返ってきたので、使ってはいけない組み合わせかと
> 思ったのですが、なにか勘違いしてますでしょうか?

# select で [[f], nil, nil] は返らないんじゃないかと…。[[f], [], []] の
# 間違い?

linux 2.2 で試してみたところ特に問題ないようです。

あるウィンドウで
	% mknod /tmp/p p
	% ruby -e 'f=File::open("/tmp/p"); p f.sysread(100); select([f], nil, nil)'

別ウィンドウから
	% cat >> /tmp/p
	hoge	←適当に入力

…とやって確認しました。sysread で "hoge\n" を読みとった後、ちゃんと
select で待ち状態になってましたが、これでいいんですよね?

-- 
とみたまさひろ <tommy / tmtm.org>