GETCWD(3)

BEZEICHNUNG
getcwd, get_current_dir_name, getwd - Gib das aktuelle Verzeichnis zurück

SYNOPSIS
#include <unistd.h>

char *getcwd(char *buf, size_t size);
char *get_current_working_dir_name(void);
char *getwd(char *buf);

BESCHREIBUNG
Die Funktion getcwd() kopiert den absoluten Pfadnamen des aktuellen Arbeitsverzeichnisses in das Array, auf das buf zeigt und das size Bytes lang ist. Wenn der aktuelle absolute Pfadname einen Puffer erfordern würde, der größer als size Bytes ist, wird NULL zurückgegeben und errno auf ERANGE gesetzt. Eine Anwendung sollte dieses abfangen und den Aufruf mit einem größeren Puffer wiederholen. Als eine Erweiterung des POSIX.1 Standards alloziiert getcwd() den Puffer dynamisch durch Verwendung von malloc(3), wenn buf beim Aufruf NULL ist. In diesem Fall hat der alloziierte Puffer die Länge size, es sei denn size ist kleiner als null, wenn buf so groß wie nötig alloziiert wird. Es ist möglich (und, in der Tat ratsam), den so erhaltenen Puffer mit free(3) wieder freizugeben, wenn er nicht mehr benötigt wird. Die Funktion get_current_dir_name, die nur einen Prototypen hat, wenn __USE_GNU definiert ist, alloziiert mit malloc(3) ein Array, das ausreichend groß für den aktuellen Verzeichnisnamen ist. Wenn die Umgebungsvariable PWD gesetzt ist und ihr Wert korrekt ist, wird dieser zurückgegeben. Die Funktion getwd, die nur einen Prototypen hat, wenn __USE_BSD definiert ist, wird keinen Puffer alloziieren. Das Argument buf sollte ein Zeiger auf ein Array sein, das zumindest PATH_MAX Bytes groß ist. getwd gibt nur die ersten PATH_MAX Zeichen des aktuellen Pfadnamens zurück.

RÜCKGABEWERT
NULL wenn ein Fehler aufgetreten ist (zum Beispiel, wenn das aktuelle Verzeichnis nicht lesbar ist), wobei errno entsprechend gesetzt wird, und buf bei Erfolg.

KONFORM ZU
POSIX.1

SIEHE AUCH
chdir(2), free(3), malloc(3).