Status der Datei, die gelöscht wird, während ein anderer Prozess in sie schreibt

229
ROMANIA_engineer

Ich habe ein WAMP, das die Protokolle (sehr oft) in eine Datei schreibt.

Wenn ich diese Datei lösche (mit Shift+ Delete), verschwindet sie für einen Moment und erscheint wieder (mit der gleichen Größe, nicht mit 0).

  • Wenn ich versuche, es mit Notepad zu öffnen, heißt es:

    Zugriff verweigert

  • Wenn ich versuche, es mit Notepad ++ zu öffnen, heißt es:

    Datei existiert nicht Erstelle es?

    • Wenn ich "Ja" wähle, wird Folgendes angezeigt:

      Die Datei " Datei " kann nicht erstellt werden .

  • Wenn ich von cmd renne :

    type file 

    es zeigt:

    Zugriff wird verweigert.

  • Wenn ich von cmd renne:

    dir /Q 

    es zeigt ...für diese Datei, während es für eine normale Datei angezeigt wird BUILTIN\Administrators(wo /Qbedeutet Display the owner of the file.).

  • Wenn ich den Server neu starte, wird die Datei gelöscht.

Fragen:

  1. Wie ist der Status dieser Datei? (es muss einen besonderen Status haben, wenn der Zugriff anders ist)
  2. Wie kann ich diesen Status in einen konsistenten Status ändern? (lesbar sein)
  3. Wie funktioniert das Löschen in diesem Fall? Wird es in eine Warteschlange gestellt und erst ausgeführt, nachdem die Datei "freigegeben" wurde?
0
Hinweis: Dies hängt möglicherweise vom Dateisystem und / oder der Windows-Version ab, die Sie verwenden. Run CMD vor 8 Jahren 0
Es gibt ein offenes Handle für die Datei, die sie sperrt. Auf diese Weise verhindert OS / FS, dass mehrere Prozesse gleichzeitig in dieselbe Datei schreiben. Wenn WAMP ordnungsgemäß heruntergefahren wird, sollte es alle Griffe freigeben. Das manuelle Abtöten des Griffs kann durchgeführt werden, kann jedoch zu unerwünschtem Verhalten oder einem Absturz führen. Linef4ult vor 8 Jahren 2

0 Antworten auf die Frage