dポイントプレゼントキャンペーン実施中!

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

A 回答 (4件)

こっちのほうがいいですね。


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

参考URL:http://www.llnl.gov/asci/platforms/bluepac/large …
    • good
    • 0

fopen64は使えませんか?


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

参考URL:http://ac-archive.sourceforge.net/largefile/libc …
    • good
    • 0

以前にも同様の質問がありました。

(C++では無いかもしれない)
その時は、open64で解決したように書いてあったかと
    • good
    • 0

fopen()は、ファイルを読み込むのではないのでどんな大きなファイルでもopenできるはずです。

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!