Frage

Ich betreiben einen Prozess, der eine Datei erstellen und diese Datei verwenden. Nach dem Ende dieses Prozesses bin Lösche ich diese Datei.

Wenn einige Ausnahme stellt sich dazwischen dann, wie man weiß, dass die Datei durch den Prozess freigegeben wird oder nicht und wie es zu löschen, wenn sie durch den Prozess gesperrt ist.

Danke für jede Hilfe:)

War es hilfreich?

Lösung

Unter Windows, wenn der Prozess beendet ist, kehrt das Betriebssystem alle von diesem Prozess automatisch im Besitz Ressourcen. Ende der Geschichte.

Zum Beispiel, sagt du hast „Create ()“ auf jedem der beiden Prozesse ein Speichersegment zu teilen. Wenn der erste Prozess beendet wird, dekrementiert Windows die Nutzungszähler und kann nur der überlebenden Prozess noch das Objekt verwenden. Wenn der zweite Prozeß einen „Closehandle ()“ bedeutet (oder selbst Exits), wird der Zähler auf Null dekrementiert, und das Objekt wird vollständig befreit.

Mit anderen Worten, wird Windows die Ressource zurückgewinnen, wenn es nicht mehr verwendet wird, ob die Prozesse anmutig nach selbst aufzuräumen oder nicht.

Und nein, auch wenn Sie eine Datei für den exklusiven Zugriff öffnen, wird die Datei selbst wird nicht „gesperrt“ werden, sobald die Datei-Handle geschlossen ist (und Windows wird es automatisch schließen, wenn das Programm beendet wird).

Andere Tipps

Wenn Ihr Programm endet - egal mit welchen Mitteln -. Die Datei, wenn sie noch existieren, wird nicht mehr durch den Prozess gesperrt werden ..., weil der Prozess nicht existiert

Aber ich Wunder haben; wenn die Datei einfach mal so am Ende gelöscht werden, brauchen Sie wirklich eine Datei in erster Linie erstellen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top