相关疑难解决方法(0)

c ++ fstream并发访问

如果从不同进程/线程同时访问文件会发生什么?我知道没有标准的方法来锁定文件,只有os特定的功能.

在我的情况下,文件将经常被阅读并且很少被写入.现在,如果A打开一个文件进行阅读(ifstream)并开始阅读块.并B打开相同的文件进行写入(ofstream)并开始编写.会发生什么?有定义的行为吗?

编辑 我的目标是对许多文件进行并发读取,写入访问.但写访问不会经常发生.如果fstream保证文件内容不会混淆,我会很满意.

例如:进程1和进程2写入文件A.如果它们同时写入,我不在乎是否将1或2的版本写入光盘,只要它是文件的一致版本即可.

如果进程读取文件而另一个进程同时写入该文件,我希望读取过程获得该文件的"旧"版本.

如果fstreams没有处理这个,我将使用数据库.

c++ concurrency file-io fstream

4
推荐指数
1
解决办法
5140
查看次数

标签 统计

c++ ×1

concurrency ×1

file-io ×1

fstream ×1