[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:38476] Re: File size limit exceeded
会津の森と申します。
Fortran ユーザではないのですが...
高橋さん:
>fotranのユーザープログラムで2GBを越えるファイル出力を行った
>ところ,File size limit exceededで落ちてしまいました.
以下は、私のようなユーザーサイドから考えたときの意
見です。
物理的なファイルシステムが扱えるサイズは 2G 超を扱
えることが多いと思いますけど、32 bit 計算機が主流
である現状では、物理的なファイルシステムが 2Gbyte
超を扱えたとしても、大抵の場合 2^31-1 (符号付き 32
bit 整数型の最大値)が最大バイトになるとみた方が安
全かもしれないと考えています。
C だと、lseek や fseek の offset を決める引数の型
は off_t で、実態は、符号付き 32 bit 整数(long)な
ので、最大値は 2^31-1 となりますよね。(この最大バ
イトだと、ext2 で1 ブロック 4096 バイトのとき、3
段間接アクセスは全く使われないのですが。。。)
実際,off_t とそれ以上のサイズを扱える loff_t に関して
/usr/include で
grep off_t *.h
grep loff_t *.h
を実行すると、前者はマッチしますが、後者は私の環境
では全くマッチしません。もっとも
find . -name '*.h' | xargs grep 'loff_t'
はマッチしますが。
_llseek を使えばどうにかなるかもしれませんが、使っ
たことはありませんので何とも言えませんが。
>何かよい対応策をご存知の方がいましたら,ご教授ください.
ネガティブな意見を書いてすみません。肯定的な意見を
貰えると私も興味深いのですが。
森 和好