Project

General

Profile

Actions

Bug #1582

closed

IO.new Raises Other Errors between 1.8 and 1.9

Added by ujihisa (Tatsuhiro Ujihisa) over 15 years ago. Updated over 13 years ago.

Status:
Closed
Assignee:
-
Target version:
ruby -v:
ruby 1.9.2dev (2009-06-05 trunk 23641) [i386-darwin9.7.0]
Backport:
[ruby-dev:38571]

Description

=begin
IO.newで引数に与えたファイル記述子のファイルモードと互換性のないファイルモードを与えたとき、ruby 1.8系ではErrno::EINVALを投げるのに対し、ruby 1.9系では例外を投げず、実際に互換性のない行為を実行したときにErrno::EBADFを投げます。

 io = File.open('aaa.txt', 'w')
 io2 = IO.new(io.fileno, 'r') # 1.8ではこの時点でErrno::EINVAL

 io.syswrite '111'
 puts io2.read # 1.9ではこの時点でErrno::EBADF

私にはruby 1.8系の挙動の方が心優しい気がするのですが、どうでしょう。添付のパッチを適用すると、1.9でもIO.newの時点でErrno::EINVALを投げるようになります。
=end


Files

io-new-raises-einval.patch (334 Bytes) io-new-raises-einval.patch ujihisa (Tatsuhiro Ujihisa), 06/06/2009 06:05 AM

Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #2796: IO behaviors on mingwClosedActions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0