From: HOSONO Hidetomo Date: 2002-12-16T17:08:17+09:00 Subject: [ruby-list:36784] Re: 2GB超のファイルにアクセスするとErrno::EOVERFLOWが発生してしまう To: ruby-list@ruby-lang.org (ruby mailing list) From: HOSONO Hidetomo Subject: [ruby-list:36781] Re: 2GB超のファイルにアクセスするとErrno::EOVERFLOWが発生してしまう Date: Mon, 16 Dec 2002 17:00:03 +0900 > ほそのひでともと申します。 > > To: ruby-list@ruby-lang.org (ruby mailing list) > From: oka@rd.secom.co.jp > Subject: [ruby-list:36780] 2GB超のファイルにアクセスするとErrno::EOVERFLOWが発生してしまう > Date: Mon, 16 Dec 2002 16:56:57 +0900 > > > Rubyでバックアップのツールを作っているのですが、 > > 2GBを超える巨大なファイルにアクセスしたところで > > エラーになってしまいます。 > > > > stat = File.stat('large.dat') > > Errno::EOVERFLOW: Value too large for defined data type - "large.dat" > > > > ファイルのタイムスタンプを調べて、ある日付より新しいなら、 > > cpコマンドに渡すというような処理をしたいのです。 > > > > この問題を回避する方法はあるでしょうか。 > > Rubyは以下のバージョンを使っています。 > > ruby 1.6.7 (2002-03-01) [i686-linux] > > 問題のファイルがあるファイルシステムは何ですか? > > ## mountコマンドを使った結果で判断するといいでしょう。 ではありませんね。失礼しました。 linux kernelやlibcのバージョン、 そしてrubyが-D_FILE_OFFSET_BITS=64付きでコンパイルされているかを チェックしましょう。 $ nm `which ruby` | fgrep 64 で何もひっかからない場合は、rubyが2GB以上のファイルを扱えないと思います。 -- ほそのひでとも