ファイル書き出しで2GB問題

どこかからのコピペですが、はまったので。。。

↓ここから
コンパイル時に、-D_FILE_OFFSET_BITS=64をコンパイラのCFLAGS環境変数に加えることで、libcは標準的なstatコールではなくstat64コールを使用します。

しかし、まだ問題が残されています。filesize()関数の戻り値はInteger型なので、オーバーフローを起こします。
$ php -r 'echo filesize("dummyfile");'

の結果は、-1988084300となってしまいます。

他にも、seek()関数は全く機能しません。例えば、以下のプログラムです。
$ php -r '$fp = fopen("dummyfile", "r");
var_dump(fseek($fp, 2147483700));'

の結果は、int(-1)となります。

まあ、ローテートをちゃんとしていれば問題ないんですが、追記書きだとしてもこけるのでこの辺りシステム構築する上できちんとしといた方がいいかなと。