Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

getcwd - Pfadnamen des aktuellen Dateiverzeichnisses ermitteln

&pagelevel(4)&pagelevel

Definition

#include <unistd.h>

char *getcwd(char *buf, int size);

Beschreibung

getcwd() gibt einen Zeiger auf den Pfadnamen des aktuellen Dateiverzeichnisses zurück. Der Wert von size muss wenigstens um eins größer als die Länge des zurückzugebenden Pfadnamens sein.

Wenn buf nicht null ist, wird der Pfadname in dem Speicherplatz gespeichert, auf den buf zeigt.

Wenn buf ein Nullzeiger ist, erhält getcwd() durch Aufruf von malloc() size Bytes Speicherplatz. In diesem Fall kann der von getcwd() zurückgegebene Zeiger als Argument in einem nachfolgenden Aufruf von free() verwendet werden.

Das aktuelle Dateiverzeichnis entspricht nur solange dem Home-Verzeichnis, bis ein Aufruf von chdir() erfolgt. Das Home-Verzeichnis kann mit getpwuid() oder getpwnam() abgefragt werden. Beide Funktionen geben eine Struktur zurück, die auch einen Zeiger auf das ursprüngliche Arbeitsdateiverzeichnis enthält.

Beim Starten eines C-Programms wird als aktuelles Dateiverzeichnis das in der Datei SYSSRPM hinterlegte so genannte Home-Verzeichnis eingestellt. Falls die Umgebungsvariable HOME für ein C-Programm definiert ist, wird das Home-Verzeichnis auf diesen Wert eingestellt.

Existiert das in der Datei SYSSRPM eingetragene Verzeichnis nicht, wird der Schrägstrich(/) zurückgegeben.

BS2000
Wenn es eine SDF-P-Variable SYSPOSIX.HOME gibt, so wird die Variable HOME der C-Programmumgebung mit dem Wert der Variable SYSPOSIX.HOME initialisiert. (Ende)

Mit einem Aufruf von chdir() kann das aktuelle Dateiverzeichnis jederzeit gewechselt werden. Ein Aufruf von chdir() hat nur eine Wirkung für die Dauer des aufrufenden Programms. Das Home-Verzeichnis wird dabei nicht verändert.

Returnwert

Zeiger auf den Pfadnamen des aktuellen Dateiverzeichnisses

 


bei Erfolg.

 

0

wenn size nicht groß genug ist oder wenn ein Fehler in einer unten liegenden Funktion auftritt. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

getcwd() schlägt fehl, wenn gilt: 

 

EACCES

Ein übergeordnetes Verzeichnis kann nicht gelesen werden, um seinen Namen zu erhalten.

 

EINVAL

size ist gleich 0.

 

ENOMEM

Es ist nicht genügend Speicherplatz vorhanden.

 

ERANGE

ist kleiner als 0 oder größer als 0 und kleiner als die Länge des Pfadnamens plus 1.

Hinweis

getcwd() wird nur für POSIX-Dateien ausgeführt.

Siehe auch

malloc(), unistd.h.