データ ファイルのセットを読み取り、いくつかのモデル計算を実行するアプリケーションがあります。プログラムはデータ ファイル自体を変更する必要がないため、現在、以下に示すように読み取り専用フラグを使用してそれらを開いています。
FILE* file;
if(_wfopen_s(&file, fname.c_str(), L"r") == 0)
...
プログラムの複数のインスタンスを同時に実行し、同じデータ セットを使用して、データに対して異なる計算を実行したいと考えています。データ ファイルを変更する必要のあるプログラムはありません。データ ファイルが非常に大きいため、各プログラムで使用するデータの個別のコピーを作成することはできません。
読み取り専用のアクセス許可でファイルを開いているため、2 つのプログラムが同じファイルから同時に読み取りを行っている可能性があると想定しました。代わりに、「別のプロセスで使用されているため、ファイルを開くことができませんでした」という行に沿ってさまざまなエラーが発生します。
私の開発環境は Windows 7 であるため、この質問は、読み取り共有を有効にすることの問題である可能性があることを示唆しています。ただし、そのスレッドのすべての回答はCreateFileに依存していますが、私は stdio.h で記述されたレガシー コードを扱っています。
関数の fopen クラスを使用して、ファイルから複数のプログラムを同時に読み取る方法はありますか?