From: nobu.nakada@... Date: 2003-01-11T08:35:31+09:00 Subject: [ruby-dev:19353] seek & buffering (Re: Re: [BUG] errno == 0) なかだです。 At Fri, 10 Jan 2003 19:23:00 +0900, Nobuyoshi-Nakada wrote: > > MSVCRT.dllの話をすると、fseek(fp, 0, SEEK_CUR) である限りは > > 問題はないように見えます。なんか見落としてるのかな。 > > [ruby-dev:19347]だと、bccとはやや場所が違うものの、mingwでも > mswinでもやはり同じようにロードに失敗しました。 [ruby-dev:18422]のテストスクリプトで試したところcygwinでも失敗 してましたが、configure.inで検出できてなかったのでチェックを追 加しました。やはり規格通りにR/Wの切替えにはseekしといたほうが無 難なようです。当り前の結論ですが。 > FILE*でのポインタよりもOSレベルでのポインタのほうがバッファに残っ > ている分だけ先に進んでいるはずですが、それを逆算するときに存在 > しなかったはずのCRの分だけ余分に戻ってしまい、おなじところを読 > み続けてエラーになるようです。 結局これに関しては、一般的なDOS/Windowsのプログラミングと同様テ キストモードでのseekは必ずしも期待通りには動作しない、という以 外になさそうです。バッファに読むところまではバイナリモードにし ておいて、getc()やfread()で変換するというcygwin方式で解決できる のかも知れませんが…。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦