Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

fchdir - aktuelles Dateiverzeichnis ändern

&pagelevel(4)&pagelevel

Definition

#include <unistd.h>

int fchdir(int fildes);

Beschreibung

fchdir() wechselt ebenso wie chdir() das aktuelle Dateiverzeichnis wobei jedoch das neue Verzeichnis nicht durch den Pfadnamen, sondern durch den Dateideskriptor fildes bezeichnet wird. Das aktuelle Dateiverzeichnis ist der Startpunkt für Suchen nach Pfadnamen, die nicht mit „/“ beginnen. Das fildes-Argument ist ein offener Dateideskriptor eines Verzeichnisses. Um ein Verzeichnis zum aktuellen Verzeichnis zu machen, muss ein Prozess Zugriffsrechte zum Ausführen (Suchen) auf das Verzeichnis haben.

Returnwert

0

bei Erfolg.

 

-1

bei Fehler. Das aktuelle Arbeitsverzeichnis bleibt unverändert. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

fchdir() schlägt fehl, wenn gilt:


EACCES

Für fildes gibt es keine Durchsucherlaubnis.

 

EBADF

fildes ist kein Dateideskriptor für eine offene Datei.

 

EINTR

Ein Signal wurde während des Systemaufrufs fchdir() abgefangen

 

EIO

Es trat während des Lesens oder Schreibens vom Dateisystem ein Ein- oder Ausgabefehler auf.

 

ENOLINK

fildes weist auf einen fernen Rechner, und die Verbindung zu diesem Rechner ist nicht mehr aktiv.

 

ENOTDIR

Der offene Dateideskriptor zeigt nicht auf ein Dateiverzeichnis.

Hinweise

Die Änderung des aktuellen Dateiverzeichnisses wirkt für die Dauer des aktuellen Programmes (bzw. der aktuellen Shell). Wird ein Programm oder eine Shell neu gestartet, dann ist wieder das Home-Verzeichnis als aktuelles Dateiverzeichnis eingestellt.
Um ein Verzeichnis zum aktuellen Dateiverzeichnis zu machen, muss ein Prozess Ausführrechte (Suchen) für das Verzeichnis haben.
fchdir() wirkt nur in dem jeweils aktiven Prozess und nur bis zur Beendigung des aktiven Programms.
fchdir() wird nur für POSIX-Dateien ausgeführt.

Siehe auch

chdir(), chroot(), unistd.h.