如果从不同的进程/线程同时访问文件会发生什么?我知道没有锁定文件的标准方法,只有操作系统特定的功能。
在我的情况下,文件会经常阅读而很少写入。现在如果A
打开一个文件进行读取(ifstream)并开始读取块。并B
打开同一个文件进行写入(ofstream)并开始写入。会发生什么?有明确的行为吗?
编辑 我的目标是对许多文件进行并发读写访问。但是写访问不会经常发生。如果 fstreams 保证文件内容不会混淆,我会很满意。
例如:进程 1 和 2 写入文件 A。如果它们同时写入,我不关心 1 或 2 的版本是否写入磁盘,只要它是文件的一致版本即可。
如果一个进程读取一个文件,另一个同时写入文件,我希望读取进程获取文件的“旧”版本。
如果 fstreams 不能处理这个问题,我将使用数据库。