Linux(32bit,CentOS)上で大きいファイルを出すプログラムを書いて走らせたら、


ファイルサイズ制限を超過しました

とかいうメッセージが出て実行が止まった。lm -lhしてみると、2Gで実行が止まっていた。

ファイルシステムの制限なのかプログラムが悪いのかよく分からんので、試しに出力を標準出力にしてパイプでファイルに書き出してやると、 2GB以上のファイルも作れていた。したがって、プログラムの方が悪い。

調べてみると、コンパイル時に次のようにすればよいらしい。


  $gcc -D_FILE_OFFSET_BITS=64 test.c

  
これで大きいファイルも正常に作られる。

よくMakefile見たらこのオプション指定しろって書いてあったしorz

参考サイト:Large File Support in Linux