2GBのファイルをfopen関数を使って読み込みたいのですが、同じコードなのにいつもと異なるOSで動作させようとすると開けなくなりました。
それがOSの違いによるものなのか、他の環境が悪さしているのかは定かではないです。
以下が簡略化したコードです。
C++
1bool Func::Initialize(void) 2{ 3 static const std::string funcname = "Func::Initialize"; 4 FILE *fp; 5 if( (fp=fopen("hoge.txt","r"))==0 ){ 6 std::cerr << "[" << funcname << "]: file open fail" << std::endl; 7 exit(-1); 8 } 9 ・・・ 10}
hoge.txtが500MB程度なら開けるのですが、数GBを超えるとfopen関数が0を返すようです。
fopenには開けるファイルのサイズに上限があるものですか?
また、これを解決する手段は何かないでしょうか。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー