[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:38478] Re: File size limit exceeded



At Fri, 17 Oct 2003 11:30:56 +0900,
TAKAHASHI Hideaki wrote:
> fotranのユーザープログラムで2GBを越えるファイル出力を行った
> ところ,File size limit exceededで落ちてしまいました.

C の場合、_FILE_OFFSET_BITS=64 にすると、ファイルに関連する
システムコール、関数、型などが 64 ビット対応のものに置き換えられます。
ファイルのサイズに size_t、オフセットに off_t を
ちゃんと使っているなら、

    $ gcc -D_FILE_OFFSET_BITS=64 foo.c

で OK なんですが、FORTRAN はどうするか知らないです。
もちろん、カーネルとライブラリが 64 ビットなファイルに
対応している必要がありますけどね。
(Woody + Linux 2.4 系統なら OK だと思う)

Debian なら /usr/share/doc/libc6/NOTES.gz に、
Solaris なら largefile(5) あたりにその辺りの説明があります。

FORTRAN で駄目なら、f2c で FORTRAN → C に変換してみるとか?

> 制限は以下のようにunlimitedです.

setrlimit(2), ulimit(3) による制限ではありません。

> これは,2GBを越えるファイルを扱えないという制限で,プログラ
> ムで対策するしか方法はないのでしょうか?

利用しているシステムコールが largefile に対応していないためです。

-- 
-- Name: SATOH Fumiyasu  -- Home: http://www.sfo.jp (in Japanese only)
-- Mail: fumiya @net-thrust.com, @samba.gr.jp, @namazu.org or ...