既存のファイルの末尾を超えてシークするにはどうすればよいですか?
test.bin
私が1000バイトだと考えてください。
次に、次のように実行します
std::filebuf fbuf;
fbuf.open("c:\\test.bin", std::ios_base::in | std::ios_base::out | std::ios_base::app | std::ios_base::binary);
fbuf.pubseekoff(10, std::ios_base::end);
fbuf.sputc(1);
fbuf.close();
この例を実行すると、新しいファイルサイズは 1011 バイトになると予想されます。ただし、代わりに、既存のファイルの末尾に 0x01 を追加して 1001 バイトにします。
興味深いことに、それが新しいファイルのときは、私が望むように動作します。
これを Windows 7 x64 で実行していますが、ターゲット プラットフォームは Ubuntu になります。