chdir(2) chdir(2)
NAME
chdir, fchdir - Aktuelles Verzeichnis ändern
SYNTAX
#include <unistd.h>
int chdir(const char *path);
int fchdir(int fildes);
BESCHREIBUNG
chdir() und fchdir() machen das Verzeichnis, auf das path oder fildes
verweist, zum aktuellen Arbeitsverzeichnis, dem Startpunkt für Pfadsu-
chen nach Pfadnamen, die nicht mit / beginnen. path zeigt auf den
Pfadnamen eines Verzeichnisses. Das Argument fildes ist ein offener
Dateideskriptor eines Verzeichnisses.
Um ein Verzeichnis zum aktuellen zu machen, muß ein Prozeß Zugriffs-
rechte zum Ausführen (Suchen) auf das Verzeichnis haben.
FEHLER
Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
errno(5).
chdir() ist erfolglos und das aktuelle Verzeichnis bleibt unverändert,
wenn einer oder mehrere der nachstehenden Punkte zutreffen:
EACCES Für eine Komponente des Pfadnamens gibt es keine Durch-
suchberechtigung.
EFAULT path weist über den zugewiesenen Adreßraum des Prozesses
hinaus.
EINTR Ein Signal wurde während des Systemaufrufs chdir() abge-
fangen.
EIO Beim Lesen vom Dateisystem oder Schreiben auf dieses
trat ein Ein-/Ausgabefehler auf.
ELOOP Während der Auflösung von path wurden zu viele symboli-
sche Links angetroffen.
ENAMETOOLONG Die Länge des Arguments path ist größer als PATHMAX,
oder die Länge einer Komponente von path ist größer als
NAMEMAX.
ENOTDIR Eine Komponente des Pfadnamens ist kein Verzeichnis.
ENOENT Entweder eine Komponente des Pfads oder die Datei, auf
welche durch path verwiesen wurde, existiert nicht oder
ist ein leerer Pfadname.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
chdir(2) chdir(2)
EMULTIHOP Die Komponenten von path erfordern den Sprung auf meh-
rere ferne Rechner.
Die Funktion chdir() kann bei folgenden Bedingungen fehlschlagen:
ENAMETOOLONG Die Auflösung des Pfadnamens eines symbolischen Links
hat ein Zwischenergebnis erzeugt, dessen Länge PATHMAX
überschreitet.
fchdir() ist erfolglos und das aktuelle Verzeichnis bleibt unverän-
dert, wenn einer oder mehrere der nachstehenden Punkte zutreffen:
EACCES Für fildes gibt es keine Durchsuchberechtigung.
EBADF fildes ist kein Dateideskriptor für eine offene Datei.
EINTR Ein Signal wurde während des Systemaufrufs fchdir()
abgefangen.
EIO Beim Lesen vom Dateisystem oder Schreiben auf dieses
trat ein Ein-/Ausgabefehler auf.
ENOLINK fildes weist auf einen fernen Rechner, und die Verbin-
dung zu diesem Rechner ist nicht mehr aktiv.
ENOTDIR Der offene Dateideskriptor zeigt nicht auf ein Verzeich-
nis.
ERGEBNIS
Nach erfolgreicher Beendigung wird 0 zurückgegeben. Andernfalls wird
-1 zurückgegeben, und errno wird zur Anzeige des Fehlers gesetzt.
SIEHE AUCH
chroot(2), getcwd(3C), unistd(4).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98