わたなべです.

Kazuhiro NISHIYAMA <zn / mbf.nifty.com> writes:

:Cygwin版やmingw版でDBMやGDBMがエラーになります。
:
:C:\tmp>ruby -vrdbm -e "DBM.open('a')"
:ruby 1.6.3 (2001-04-03) [i386-cygwin]
:-e:1:in `open': Permission denied - "a" (Errno::EACCES)
:        from -e:1
:
:C:\tmp>ruby_ -vrdbm -e "DBM.open 'a'"
:ruby 1.6.3 (2001-04-03) [i386-mingw32]
:-e:1:in `open': No such file or directory - "a" (Errno::ENOENT)
:        from -e:1

移植されてるGNU dbmのndbm互換がWinNT/2kしかサポートしてないようです。
逃げを考えます。

:C:\tmp>ruby -vrgdbm -e "GDBM.open 'a'"
:ruby 1.6.3 (2001-04-03) [i386-cygwin]
:-e:1:in `open': Permission denied - "a" (Errno::EACCES)
:        from -e:1

これは再現しません。

:C:\tmp>ruby_ -vrgdbm -e "GDBM.open 'a'"
:ruby 1.6.3 (2001-04-03) [i386-mingw32]
:-e:1:in `open': Permission denied - "a" (Errno::EACCES)
:        from -e:1

こっちは
-e:1:in `open': No such file or directory - "a" (Errno::ENOENT)
だったら再現したけど、ひょっとしたらerrnoに正しい値をセット
してない可能性もあるので調べてみます。

-- 
わたなべひろふみ