• ベストアンサー

4Gバイトのファイルを開くには?

C初心者です。 稼動環境はUNIX(AIX)です。 4Gバイトのテキスト・ファイルを処理しなければならないのですが、fopen()を使用すると、エラーが出て開くことができません。 動的にメモリを割り当てればよいのかな?と思いますが具体的な方法がわかりません。 どなたか教えていただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.4

こっちのほうがいいですね。 AIX 4.3のドキュメントが元ネタになっているようです。 http://www.llnl.gov/asci/platforms/bluepac/large_file_prog.html

参考URL:
http://www.llnl.gov/asci/platforms/bluepac/large_file_prog.html

その他の回答 (3)

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.3

fopen64は使えませんか? 32ビット環境では2GBあたり(longで扱える限界)に壁があります。 64が後ろについた関数を使うことで64ビット相当にまで拡大することができます。 http://ac-archive.sourceforge.net/largefile/libc.html

参考URL:
http://ac-archive.sourceforge.net/largefile/libc.html
  • bikkuri
  • ベストアンサー率33% (23/68)
回答No.2

以前にも同様の質問がありました。(C++では無いかもしれない) その時は、open64で解決したように書いてあったかと

回答No.1

fopen()は、ファイルを読み込むのではないのでどんな大きなファイルでもopenできるはずです。エラーになるのは別の理由だと思います。何のエラーが出ているのでしょうか? 通常大きいファイルの場合には、openして少し読み込んでファイルポインタを移動してまた読み込んでというように処理をします。

関連するQ&A