異なるプロセス/スレッドからファイルに同時にアクセスするとどうなりますか?ファイルをロックする標準的な方法はなく、OS固有の機能のみであることを理解しています。
私の場合、ファイルは頻繁に読み取られ、ほとんど書き込まれません。ここA
で、読み取り用にファイルを開いて(ifstream)、チャンクの読み取りを開始した場合。そしてB
、(ストリームの)書き込み用に同じファイルを開き、書き込みを開始します。何が起こるか?定義された動作はありますか?
編集 私の目標は、多くのファイルへの同時読み取り、書き込みアクセスです。ただし、書き込みアクセスはそれほど頻繁には発生しません。fstreamsがファイルの内容が混同されないことを保証すれば、私は満足するでしょう。
例:プロセス1と2がファイルAに書き込みます。同時に書き込む場合、ファイルの一貫したバージョンである限り、1または2のバージョンがディスクに書き込まれるかどうかは関係ありません。
プロセスがファイルを読み取り、同時に別のプロセスがファイルに書き込む場合、読み取りプロセスでファイルの「古い」バージョンを取得する必要があります。
fstreamがこれを処理しない場合は、データベースを使用します。