From: WATANABE Hirofumi Date: 2003-02-16T03:18:38+09:00 Subject: [ruby-dev:19583] Re: Fw: Ruby 1.8.0 bugs わたなべです。 WATANABE Hirofumi writes: > _fmodeで設定してもは普通のファイルに対して効かないようです。 > > % ruby -e 'open("foo.txt", "w").print "foo\n"' > % od -c foo.txt > 0000000 f o o \r \n > 0000005 _fmodeの設定をmain.cに移したら効きました。 DLLの中では意味がないということで。 結局automode.cを参考に #ifdef __CYGWIN__ #include static struct __cygwin_perfile pf[] = { {"", O_RDONLY | O_BINARY}, {"", O_WRONLY | O_BINARY}, {"", O_RDWR | O_BINARY}, {"", O_APPEND | O_BINARY}, {NULL, 0} }; cygwin_internal(CW_PERFILE, pf); #endif とすればよさそうです。 > readのほうはちゃんとバイナリモードになってるんだけど。 > > % ruby -ne 'p $_' "foo\r\n" > % ruby -ne 'p $_' foo.txt > "foo\r\n" > > なんか変なのでもうちょっと調べてみます。 こちらはprep_stdio()のおかげでした。 以上の変更をcommitしました。 -- わたなべひろふみ