1

打开文件的输入流是否安全,同时打开同一文件的输出流(但不写入)(单线程)

4

2 回答 2

3

这可能是“不安全的”,就像不戴头盔骑自行车是不安全的一样。事情可能更容易出错,但如果你聪明且小心,那应该没关系。但是,实际上并没有必要这样做,您可以在想要读入时简单地关闭输出流,然后在读完后重新打开它。

于 2013-01-31T15:14:20.757 回答
3

部分取决于系统。系统可能不允许。除此之外,一旦您打开了一个流进行写入,并且在同一个文件上打开了多个流(无论方向如何),您就必须担心缓冲。在您的情况下,如果您在打开流进行读取之前进行刷新,并且在阅读时不要写入,则应该没问题。如果您尝试写入并读取您写的最后一件事,那就更困难了,因为您无法将读取缓冲区与文件重新同步。如果你试图通过两个不同的流进行写入,那就更成问题了。(虽然如果写入应该始终附加在末尾,并且您可以在刷新时进行安排,打开文件std::ios_base::app应该可以解决问题。但这无助于阅读。)

于 2013-01-31T15:31:59.513 回答