C++で、オープンFILE*
を閉じて再度開くことなく、オープンの出力モードを変更することは可能ですか?
私はFILE*
モードを開いており、よりエレガントな方法でstd::ios_base::out
切り替えたいと考えています。std::ios_base::app
質問する
68 次
1 に答える
1
ファイルの最後に書き込みたい場合は、ファイルの最後までシークするだけです。これがより簡単な解決策です。
POSIX システム (Linux、Unix などを含む) では、おそらく Windows でも、一度開いたファイルのオープン モードを変更することはできません。したがって、それを閉じてから再度開く必要があります。
オペレーティング システムにこれを許可する特殊性があり、移植性を気にしない場合は、サブクラスで適切なシステム コールを使用し、std::filebuf
独自のstd::fstream
サブクラスを作成することでこれを実現できます。
于 2013-03-07T15:07:46.087 に答える