是否可以在 C++ 中更改打开的 FILE*
的输出模式而无需关闭并重新打开它?
我有一个以 std::ios_base::out
模式打开的 FILE*
并且想切换到 std::ios_base::app
一种更优雅的方式。
最佳答案
如果你想写在文件的末尾,简单地寻找文件的末尾,这是更简单的解决方案。
在 POSIX 系统(包括 linux、unix 等)上,很可能在 Windows 上也是如此,一旦文件打开,就无法更改文件的打开模式。因此,您必须关闭它并重新打开它。
如果您的操作系统有一些允许这样做的特殊性并且您不关心可移植性,您可以通过在 std::filebuf
子类中使用正确的系统调用来实现这一点,然后创建您的拥有 std::fstream
子类。
关于c++ - 在不关闭文件的情况下,将打开的文件的 ios_base 从 'out' 更改为 'app',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15274444/