Что произойдет, если к файлам обращаются одновременно из разных процессов / потоков?Я понимаю, что нет стандартного способа блокировки файла, есть только специальные функции.
В моем случае файлы читаются часто и пишутся редко.Теперь, если A
, откройте файл для чтения (ifstream) и начните чтение фрагментов.И B
открывает тот же файл для записи (ofstream) и начинает запись.Что случится?Есть ли определенное поведение?
edit Моя цель - одновременное чтение, запись во многие файлы.Но доступ для записи не будет происходить очень часто.Я был бы доволен, если бы fstream гарантировал, что содержимое файла не перепуталось.
Например: Процесс 1 и 2 записывают в файл A. Если они записывают одновременно, мне все равно, версия 1 или2 записывается на диск, если это согласованная версия файла.
Если процесс читает файл, а другой записывает в него одновременно, я хочу, чтобы процесс чтения получил «старый»"версия файла.
Если fstreams не справится с этим, я буду использовать базу данных.