将打开的文件的ios_base从'out'更改为'app'而不关闭文件
Change ios_base of open FILE from 'out' to 'app' without closing the FILE
是否有可能在c++中改变打开的FILE*
的输出模式而不关闭并重新打开它?
我在std::ios_base::out
模式下打开了FILE*
,并希望以更优雅的方式切换到std::ios_base::app
。
如果您想在文件末尾写入,只需查找到文件末尾,这是更简单的解决方案。
在POSIX系统(包括linux, unix,…)上,也很可能在Windows上,一旦文件被打开,就不可能改变它的打开模式。因此,您必须关闭它并重新打开它。
如果你的操作系统有一些特殊性允许这样做,而你不关心可移植性,你可以通过在std::filebuf
子类中使用正确的系统调用来实现这一点,然后创建你自己的std::fstream
子类
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 命名空间中具有.h和.cpp文件的类
- 如何使用ndk-build.cmd构建Android.so文件
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 文件模式标志"ios::app"是否用于删除文件(如果文件已存在)?
- ios::app 和 ios::noreplace 模式在文件处理中有什么区别?
- 如何在没有.app的情况下,在 macOS 上使用 qmake 获取二进制文件
- 如何在c++中使用seekg和seekp附加到文件,而不使用ios:app标志
- .app文件的行为与MAC上Qtreeview中的文件夹类似
- 使用.app文件打开
- 将打开的文件的ios_base从'out'更改为'app'而不关闭文件
- 文件处理C++,在ios::app模式下打开,文件被擦除
- 如何在从C++调用 C# dll 时使用 app.config 文件