Issue #5954 has been reported by Luis Lavena.

----------------------------------------
Bug #5954: IO.read_nonblock on IO.pipe generates Errno::EBADF (MinGW)
https://bugs.ruby-lang.org/issues/5954

Author: Luis Lavena
Status: Open
Priority: Normal
Assignee: Usaku NAKAMURA
Category: 
Target version: 1.9.3
ruby -v: 1.9.3-p0 i386-mingw32 and 2.0.0dev


Originally posted in [ruby-core:42103]:

The following example seems not to work under Windows:

=begin
r, w = IO.pipe

w.write "awesome" * 10

puts r.read_nonblock(8)

r.close
w.close
=end

C:\Users\Luis>ruby -v t.rb
ruby 1.9.3p0 (2011-10-30) [i386-mingw32]
t.rb:5:in `read_nonblock': Bad file descriptor (Errno::EBADF)
       from t.rb:5:in `<main>'

What is not clear is that using StringIO works:

=begin
require "stringio"

b = StringIO.new

b.write "awesome" * 10
b.rewind

puts b.read_nonblock(8)

b.close
=end

C:\Users\Luis>ruby -v t2.rb
ruby 1.9.3p0 (2011-10-30) [i386-mingw32]
awesomea

Perhaps pipes are not open properly? Is this supported under Windows?



-- 
http://bugs.ruby-lang.org/