>>163
MacOS XのUNIX部分は、*BSD系だと聞いているから(使ったことないけど)
何もオプションをつけなくても、2GB以上のファイルが使えるんじゃない
かな。

>>163,164
RedHat 9.0 なら、161 の方法で大丈夫な筈。

>>166
それよりは、161の方が移植性が高いんじゃないかな?
あと、細かいことを言うと、明示的に -D_LARGEFILE_SOURCE を指定する
必要があるのは、fseeko() と ftello() が使いたい場合ぐらいで、もし
この2つの関数が不要ならば -D_LARGEFILE_SOURCE は要らない筈。
(もっとも Solaris で `getconf LFS_CFLAGS` すると、デフォールトで
-D_LARGEFILE_SOURCE も有効になるけど。でも、こうならないプラット
フォームもある。)

で、もし -D_LARGEFILE_SOURCE と -D_FILE_OFFSET_BITS=64 の両方が
有効なプラットフォームなら、この2つを定義した段階で、off_t が
64ビットになるので、fpos_t を使わずに、fseeko() と ftello() に
off_t を渡すという手もある。

> 既存のコードとのコンパチビリティ等が気になるなら、必要な部分だけ
> fopen64 とか fread64 とか使っても良い。

このAPIを使いたい場合、cc のオプションに
-D_LARGEFILE64_SOURCE `getconf LFS64_CFLAGS` `getconf LFS64_LDFLAGS` `getconf LFS64_LIBS`
をつけないと、移植性がなくなると思う。
あと、この場合オープンなど全ての関数をfopen64()のように書き換えないと
まずいので注意。それに、標準入力が2GBを越えた場合の動作保証とかもない
んじゃないかな。