[ruby-list:39024] Re: 2GB を超えるファイルのサイズ

From: matz@... (Yukihiro Matsumoto)
Date: 2004-01-05 13:50:17 UTC
List: ruby-list #39024
まつもと ゆきひろです

In message "[ruby-list:39023] 2GB を超えるファイルのサイズ"
    on 04/01/05, Takashi Seki <hawk.seki@nifty.com> writes:

|File::size で
|2,367,467,268バイトのファイルのサイズを取得したところ
|-1927500028と帰ってきました。
|
|もしや2GBの制限があるのかとおもって調べたらfile.c に
|	/*
|	 *  call-seq:
|	 *     stat.size    => fixnum
|	 *  
|	 *  Returns the size of <i>stat</i> in bytes.
|	 *     
|	 *     File.stat("testfile").size   #=> 66
|	 */
|
|	static VALUE
|	rb_stat_size(self)
|	    VALUE self;
|	{
|	    return OFFT2NUM(get_stat(self)->st_size);
|	}
|という記述がありました。
|
|やはりこれは制限でしょうか?
|それとも、何らかの解決策はあるのでしょうか?

Win32ではoff_tのsizeが4バイトと定義されているようです。とい
うことで、RubyではなくWin32 portの制限でしょう。ちなみに
Cygwinではoff_tのサイズは8バイトですから、この問題は発生しま
せん。

In This Thread