咳といいます。

> リモートのコマンド実行は、druby が便利そうで、また、過去のメールリ
> ストから、色々なプラットフォーム上での実行等を考えると、コマンドの
> 出力を得るのは open3 を利用するのが良さそうでした。
> 
> そこで、それらを利用した評価用の短いプログラムを Windows NT 上で実
> 験しましたところ、以下のエラーになってしまいました。
> 
> C:\ruby\last\ask>ruby -v server.rb
> ruby 1.6.5 (2001-09-19) [i386-cygwin]
> druby://special:4000
> [return] to exit
> /cygdrive/c/usr/local/lib/ruby/1.6/open3.rb:22: stream closed (IOError)
> #<EOFError: End of file reached>
> /cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:109:in `sysread'
> /cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:109:in `load'
> /cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:135:in 

Windows NTのプロセスのモデルをよくしらないのですが、
UNIXであるとfork/execとdrb-1.3.2の組合せで問題が起きることが
わかっています。(子プロセスへソケットが渡ることが起因‥)

# ZnZさんが詳しい

次のバージョン(drb-1.3.3)からはdRubyの作ったソケットを
  soc.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC)
する予定です。
# あれ? 1.3.3b の最新版に入ってない‥。入れておこう。


そうだ。
ところでWinなどの非UNIXな環境でも CLOEXEC という定数は
使えるのでしょうか?