打开文件的输入流是否安全,而同一文件的输出流是打开的(但不写入) (单线程)
答案 0 :(得分:3)
这可能是“不安全”的,就像骑自行车没有头盔一样是不安全的。事情可能会更容易出错,但如果你聪明而谨慎,那应该没关系。但是,实际上并不需要这样做,只需在读入时关闭输出流,然后在读完后重新打开它。
答案 1 :(得分:3)
部分取决于系统。系统可能不允许它。除此之外,只要您打开了一个用于写入的流,并且在同一个文件上打开了多个流(无论方向如何),您就必须担心缓冲。在您的情况下,如果您在打开流进行读取之前进行刷新,并且在您阅读时不进行写入,则应该没问题。如果你正在尝试编写,并阅读你写的最后一件事,那就更难了,因为没有什么可以做的事情来重新同步读缓冲区和文件。如果你试图通过两个不同的流来写,那就更有问题了。 (虽然如果写入总是应该在末尾附加,并且你可以在刷新时进行安排,那么用std::ios_base::app
打开文件应该可以解决问题。但这无助于阅读。)