Kann ich zulassen, dass mehrere Programme gleichzeitig aus derselben Datei lesen?

Ich habe eine Anwendung, die eine Reihe von Datendateien liest und einige Modellberechnungen durchführt. Das Programm muss die Datendateien selbst nicht ändern, daher öffne ich sie derzeit mit dem schreibgeschützten Flag, wie unten gezeigt:

FILE* file;
if(_wfopen_s(&file, fname.c_str(), L"r") == 0)
...

Ich möchte, dass mehrere Instanzen meines Programms gleichzeitig ausgeführt werden und denselben Datensatz verwenden, aber unterschiedliche Berechnungen für die Daten ausführen. Keines meiner Programme muss die Datendateien ändern. Da die Datendateien sehr groß sind, kann ich keine separaten Kopien der Daten für jedes Programm erstellen.

Ich nahm an, dass zwei Programme zur gleichen Zeit aus derselben Datei lesen könnten, da ich die Dateien schreibgeschützt öffne. Stattdessen erhalte ich verschiedene Fehler im Sinne von "Die Datei konnte nicht geöffnet werden, weil sie von einem anderen Prozess verwendet wird".

Da meine Entwicklungsumgebung Windows 7 ist,Diese Frage deutet darauf hin, dass es sich möglicherweise um die Aktivierung der Lesefreigabe handelt. Alle Antworten in diesem Thread stützen sich jedoch aufErstelle DateiIch habe es mit Legacy-Code zu tun, der mit stdio.h geschrieben wurde.

Gibt es eine Möglichkeit, mit der fopen-Funktionsklasse mehrere Programme gleichzeitig aus einer Datei lesen zu lassen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage