Eine bereits geöffnete Datei auslesen etc.?
-
Moin,
wenn eine Datei von Prozess X geöffnet und beschrieben wird, kann diese Datei, noch wärend des Vorganges, von einem anderen Prozess (Y) gelesen, unbenannt und/oder verschoben werden? Ich frage, weil ich nicht weiß, ob dies unter Windows von Fall zu Fall unterschiedlich sein kann.
Vielen Dank.
mFg,
VB'ler
-
Wenn eine Datei mit der Win-API-Funktion: CreateFile() geöffnet wurde, gibt es die Möglichkeit den Parameter "dwShareMode" zu modifizieren.
Details siehe:
www.msdn.microsoft.com/en-us/library/aa363858
-
Kann man man schon machen, aber die Sycronisierung der Zugriffe ist notwendig zu beachten! Dafür gibt es einige Möglichkeiten z.B. in der WinApi, die solche Zugriffskonfikte vermeiden können.
-
Ich glaube das geht (unter Windows) sogar mit fopen("..", "w") und fopen("..", "r"). Bin mir aber nicht sicher ob das Verhalten so auch garantiert wird..
-
Das hängt davon ab, wie der besitzende Prozess die Datei geöffnet hat. Wenn er keinen gemeinsamen Zugriff erlaubt (z.B. wenn die Datei mit CreateFile und dwShareMode = 0 erzeugt wurde) kannst du sie nicht zum Lesen öffnen.