掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
c++builder 4GB超のファイル書き込みがNG (ID:41371)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
C++Builder2010、WinXP32bit です。(Delphiでなくてごめんなさい) レガシー?な関数fopenで4GB超のファイルアペンドがうまくできません。 といいますか、ある日突然できなくなりました。 勿論書き込んでいるHDDはNTFSです。 以下に再現コードを載せます。ご教授ください。 (無駄なことをしているように見えますが、ヘルパ関数内で行っているコードを再現用に組みなおしていますので、こうなります) *************************************************** #include <stdio.h> を追加 // --------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { FILE *fo; unsigned char *tmp = new unsigned char[1024 * 1024 * 256]; wchar_t *fname = L"E:\\test.bin"; char *fname2 = "E:\\test.bin"; for (int id = 0; id < 20; id++) //5 GB のファイルができるはず 4294967296 byteしかできない。 { if ((fo = _wfopen(fname, L"ab")) == NULL) //if ((fo = fopen(fname2, "ab")) == NULL) //fopenでも同じ { return; } int s; s = fwrite(tmp, sizeof(char), 1024 * 1024 * 256, fo); fclose(fo); } delete[]tmp; } // ---------------------------------------------------------------------------
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.