[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:38561] Re: File size limit exceeded
川添です。
ファイルサイズが2GBを超えることは、ありますよね。
ext2でなくても、FAT32で困ってしまったり(こちらはファイルシステムの仕様)
してます。
On Fri, 17 Oct 2003 14:31:41 +0900
SATOH Fumiyasu <fumiya@xxxxxxxxxxx> wrote:
> C の場合、_FILE_OFFSET_BITS=64 にすると、ファイルに関連する
> システムコール、関数、型などが 64 ビット対応のものに置き換えられます。
> ファイルのサイズに size_t、オフセットに off_t を
> ちゃんと使っているなら、
>
> $ gcc -D_FILE_OFFSET_BITS=64 foo.c
>
> で OK なんですが、FORTRAN はどうするか知らないです。
(略)
> FORTRAN で駄目なら、f2c で FORTRAN → C に変換してみるとか?
>
f2cで吐かれるソースはちょっと読みにくいですよ (^^;
g77でしたら、バックエンドはgccと同じですし、
最悪、Cと混ぜ混ぜすればいけると思います。
# 結構大昔(初期のBSD?)から、混ぜられる仕様のようです
命名規約などがちょっとややこしいのですが、
簡単な例をあげておきますと、
print.c
-- ここから
#include <stdio.h>
print_(int *i)
{
printf("%d\n", *i);
}
-- ここまで
main.f
-- ここから
integer i
i = 10
call print(i)
end
-- ここまで
$ gcc -c print.o
$ g77 main.f print.o
$ ./a.out
10
ポイントは、
・FORTRANでの関数名にアンダースコアを付けたものがCでの関数名になる
・FORTRANでの関数引数は、Cから見るとポインタ渡しになる
といったあたりでしょうか。
(FORTRANでは関数なんて言わないんですけど、最近C系ばっかりなのでお許しを。)
---
川添 朋律 / Kawazoe Tomonori <tsk@xxxxxxxxxx>