Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

dirname - Vaterverzeichnis zu einem Pfadnamen liefern

&pagelevel(4)&pagelevel

Definition

#include <libgen.h>

char *dirname(char *path);

Beschreibung

dirname() ermittelt zu dem Pfadnamen, auf den *path zeigt, das übergeordnete Verzeichnis und liefert einen Zeiger auf eine Zeichenkette zurück, die den Namen dieses Vaterverzeichnisses bzw. den String "." enthält. Dabei werden abschließende Gegenstriche (‚/‘) am Ende des Pfadnamens nicht als Teil des Pfades gewertet.

Enthält path keinen Gegenschrägstrich (‚/‘), liefert dirname() einen Zeiger auf die Zeichenkette "." zurück.

Wenn path ein Nullzeiger ist oder auf einen leeren String zeigt, gibt dirname() ebenfalls einen Zeiger auf die Zeichenkette "." zurück.

dirname() ist nicht reentrant.

Returnwert

Zeiger auf den Namen des Vaterverzeichnisses

Wenn path einen Schrägstrich enthält.

 

Zeiger auf Zeichenkette "."

Wenn path keinen Schrägstrich enthält, path ein Nullzeiger ist oder auf einen leeren String zeigt.

Hinweise

dirname() kann die Zeichenkette path verändern. Der Returnwert von dirname() kann in einen statischen Bereich zeigen, der von einem nachfolgenden Aufruf von dirname() überschrieben wird.

dirname() und basename() ergeben zusammen einen vollständigen Pfadnamen.
dirname(path) ermittelt den Pfadnamen des Verzeichnisses, in dem sich basename(path) befindet.

Beispiel

Eingabewert in path                               

Rückgabewert

"/usr/lib"

"/usr"

"/usr/"

"/"

"usr"

"."

"/"

"/"

"."

"."

".."

"."

Das folgende Code-Fragment liest einen Pfadnamen, macht das Vaterverzeichnis zum aktuellen Arbeitsverzeichnis und öffnet die Datei:

char path(MAXPATHLEN), *pathcopy;
int fd;
fgets(path, MAXPATHLEN, stdin);
pathcopy = strup(path);
chdir(dirname(pathcopy));
fd = open(basename(path), O_RDONLY);

Siehe auch

basename(), libgen.h.