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.


Log in to reply