C++使用不同的流读取和写入同一个文件

C++ read and write to same file using different streams

本文关键字:同一个 文件 读取 C++      更新时间:2023-10-16

我有两个流指向同一个文件。第一个是std::ofstream os,第二个是std::ifstream is,都以二进制模式打开。

我正在使用os创建一个新文件。文件创建过程要求我(有时)读取os写入文件的数据。is流寻找所需的位置,读取一些数据,然后os在其(不同的)偏移处执行它的操作,然后刷新。

这样做合法吗?溪流会互相践踏吗?

不能引用任何标准,但/因为这是特定于平台的
(可能是独占访问,不同级别的缓冲…)

您可以将单个fstreamios::in|ios::out一起使用
在每一次行动之前寻求。