9

ostream::write に大きなバッファを送信したとしますが、実際には最初の部分だけが正常に書き込まれ、残りは書き込まれていません。

int main()
{
   std::vector<char> buf(64 * 1000 * 1000, 'a'); // 64 mbytes of data
   std::ofstream file("out.txt");
   file.write(&buf[0], buf.size()); // try to write 64 mbytes
   if(file.bad()) {
     // but suppose only 10 megabyte were available on disk
     // how many were actually written to file???
   }
   return 0;
}

実際に書き込まれたバイト数を教えてくれる ostream 関数は何ですか?

4

2 に答える 2

2

に相当するものはありませんgcount()。streambuf に ( を使用して) 直接書き込みを行うとsputn()、その兆候が示されますが、要求には根本的な問題があります。 OSが実際に書いたものに。

于 2013-01-09T15:34:24.740 に答える