Re: Datei umbenennen während des Programmlaufs

From: Claudia Neumann <dr.claudia.neumann_at_gmx.de>
Date: Sun, 8 Apr 2007 12:09:09 +0200

Am Sonntag, 8. April 2007 11:31 schrieben Sie:
> On Sun, 8 Apr 2007 11:15:54 +0200, you wrote:
> >Ich habe nun für diese spezielle Operation nach Laden des Hauptprogramm
> > das Programm umbenannt (.bak angehängt). Das funktioniert auch bei mir:
> > das Hauptprogramm läuft ohne Probleme weiter und die Clients können nicht
> > mehr auf das Programm zugreifen.
> >
> >Meine Frage: ist das sicher? Funktioniert es bei mir nur, weil ich viel
> >Arbeitsspeicher habe oder findet der Kernel auch das umbenannte Programm,
> >wenn es einmal geladen ist.
>
> Der Dateiname wird nur fürs open() gebraucht, dabei wird der zum Namen
> passende inode gesucht, der für die weiteren Operationen benutzt wird. Wird
> der Dateiname geändert, ändert sich der inode nicht, d.h. das handle bleibt
> weiter gültig. Entfernst Du den Dateinamen, bleibt der inode solange
> bestehen, bis das letzte handle geschlossen wird, d.h. auch bei eimen rm
> bzw unlink() bleibt das handle bis zum close() gültig.

Ah, danke. Das beruhigt mich ungemein.

> Die Trennung zwischen Directoryeintrag(Dateiname) und inode sorgt dafür,
> daß das alles so funktioniert. Bei CPM und seinen Nachfahren (Dos, NT) gibt
> es diese Trennung nicht.

Ja, dort funktioniert es nicht.
 
Viele Grüße und frohe Ostern

Claudia Neumann
Received on Sun Apr 08 2007 - 12:09:09 CEST

This archive was generated by hypermail 2.2.0 : Sun Apr 08 2007 - 12:17:58 CEST