Bernd Brodesser wrote:
[.. im Wurzelverzeichnis eines gemounteten Dateisystems] Das bei cd .. auf eine andere Partition gewechselt wird, müsste am Systemaufruf chdir liegen, allerdings habe ich bei man 2 chdir keinen Hinweiß gefunden.
Es liegt am Kernel, aber nicht speziell an chdir(). Bei *jedem* Umgang mit Pfadnamen muss der Kernel einer Komponente mit dem Namen ".." eine Sonderbehandlung verpassen. Dazu wird anhand kernel-interner Datenstrukturen (also nicht der Daten auf der Platte) das uebergeordnete Verzeichnis gefunden, auch wenn es (fuer einen Mountpoint) in einem anderen Dateisystem liegt bzw. mit dem aktuellen Verzeichnis identisch ist (in "/"). Fuer das Traversieren von Pfadnamen werden intern immer die gleichen Funktionen benutzt, sei es von chdir(), open(), unlink(), ... -- eben von allem, was Pfadnamen bekommt. Aus Benutzersicht kann man ".." damit in jedem Fall wie einen gewoehnlichen Hardlink auf ein anderes Verzeichnis behandeln. Damit, dass ".." mit "." identisch sein kann bzw. auf ein anderes Dateisystem fuehrt, muss man dabei natuerlich rechnen -- aber letzteres ist mit jedem anderen Verzeichnisnamen auch nicht anders, denn es koennte sich ja um einen Mountpoint handeln. Fuer die meisten Anwendungen kommt es darauf nicht an, ansonsten muss die Anwendung ohnehin fuer jedes einzelne Verzeichnis, mit dem sie arbeitet, feststellen, auf welchem Dateisystem es liegt. Eilret -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Eilert Brinkmann -- Universitaet Bremen -- FB 3, Informatik eilert@informatik.uni-bremen.de - eilert@tzi.org - eilert@linuxfreak.com http://www.informatik.uni-bremen.de/~eilert/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (1)
-
eilert@Informatik.Uni-Bremen.DE