0

C++で、オープンFILE*を閉じて再度開くことなく、オープンの出力モードを変更することは可能ですか?
私はFILE*モードを開いており、よりエレガントな方法でstd::ios_base::out切り替えたいと考えています。std::ios_base::app

4

1 に答える 1

1

ファイルの最後に書き込みたい場合は、ファイルの最後までシークするだけです。これがより簡単な解決策です。

POSIX システム (Linux、Unix などを含む) では、おそらく Windows でも、一度開いたファイルのオープン モードを変更することはできません。したがって、それを閉じてから再度開く必要があります。

オペレーティング システムにこれを許可する特殊性があり、移植性を気にしない場合は、サブクラスで適切なシステム コールを使用し、std::filebuf独自のstd::fstreamサブクラスを作成することでこれを実現できます。

于 2013-03-07T15:07:46.087 に答える