From: Kazuhiro Yoshida Date: 2003-07-26T18:40:33+09:00 Subject: [ruby-dev:20918] Re: [BUG] errno == 0 もりきゅうです。 matz@ruby-lang.org (Yukihiro Matsumoto) wrote: > 問題をいくつかに分けましょう。 そうしましょう。 > まず、「落ちた」原因はopenされていないfile descriptor(4)を使っ > て、fdopen(3)を呼んだせいです。これはプログラムのバグと呼ん > でよいでしょう。 はい。 > 次に[BUG]が出た理由は、どうやらWin32でのfdopen()がopenされて > いないfdに対してNULLを返すのにもかかわらず、errnoを設定しな > いせいです。これはWin環境固有のバグです。 はい。(どなたかよろしくお願いします>うささん^^;;;) > それから、$stdinは1.8の現状ではread onlyの変数になっています > ので、reopenするしかないですね。これが妥当かどうかについては > 結論が出てなかったと思います。 ふむ。 グローバル変数(ぽく見えるもの)でほかにread onlyになってるものは あるのですか? > そういう意味では今ならまだ間に合うタイミングだと思います。 > ただ、$stdinはやっぱり$stdinですから、書き換えたり、IOでない > ものが代入されたりするのは変だと思います。ということは、 > $defoutに相当する変数が必要ということなのでしょうか。$defin? そうですね。$deferrも1.6.8にはないみたいですし。 $definは($defout,$deferrと同様)Ruby APIで書き換え可能なのですね。 $definという名前でいいのかな。いいか。 ---- YOSHIDA Kazuhiro moriq@moriq.com http://www.moriq.com/