我有一个应用程序根据特定配置写入多个文件。有时我们使用普通的std:ostream,有时我们使用opencv或者使用boost编写。
对于std:ostream rdstate()函数。 在我看来,最好的解决方案是,如果我可以使用一些通用方法(例如来自os),它适用于每种机制。 有这样的事吗?
如果没有,有人能指出我关于类似于rdstate()的检查的文档吗? 感谢
更新:
我用这些函数编写文件:
OpenCV:cv::VideoWriter << image
提升:boost::iostreams::file_sink->write
我找到了检查bosst案例的书面数据的方法。 write
函数返回写入的字节数,我可以将其与预期的字节进行比较。
对于我使用GetFileAttributesEx
的openCV案例,确定文件大小并检查是否增加了。
这是一个好方法吗?
答案 0 :(得分:0)
如果写入文件的基础操作系统调用返回错误指示,我希望std::ostream
最终处于fail()
状态。
您必须勤勉地检查std::ostream
的状态,包括在显式close()
之后,因为在写出缓冲数据的最后一位时可能会遇到写入错误。