dirname(3G) dirname(3G)
NAME
dirname - Name des übergeordneten Dateiverzeichnisses ausgeben
SYNTAX
cc [option ...] datei ... -lgen [bibliothek ...]
#include <libgen.h>
char *dirname(char *Pfad);
BESCHREIBUNG
Wenn dirname() ein Zeiger auf eine mit einem Nullzeichen abgeschlos-
sene Zeichenkette übergeben wird, die einen Pfadnamen des Dateisystems
enthält, gibt dirname() einen Zeiger auf eine static-Zeichenkette
zurück, die das übergeordnete Verzeichnis dieser Datei bezeichnet.
Manchmal fügt dirname() ein Null-Byte vor das letzte Element ein,
daher muß der Inhalt von Pfad verfügbar sein. Abschließende /-Zeichen
in dem Pfad werden nicht als Teil des Pfads gewertet.
Wenn Pfad oder *Pfad null ist, wird ein Zeiger auf eine static-
Konstante "." zurückgegeben.
dirname() und basename() liefern zusammen einen vollständigen Pfadna-
men. dirname(Pfad) ist das Verzeichnis, in dem basename(Pfad) gefunden
wird.
BEISPIELE
Ein einfacher Dateiname und die Zeichenketten "." und ".." haben alle
"." als Rückgabewert.
Eingabe-String Rückgabewert
_____________________________
"/usr/lib" "/usr"
"/usr/" "/"
"usr/" "."
"/" "/"
"." "."
".." "."
Der folgende Programmtext bewirkt, daß ein Pfadname gelesen, in das
entsprechende Verzeichnis gewechselt [siehe chdir(2)] und die Datei
geöffnet wird.
char path[MAXPATHLEN], *pathcopy;
int fd;
fgets(path, MAXPATHLEN, stdin);
pathcopy = strdup(path);
chdir(dirname(pathcopy));
fd = open(basename(path), ORDONLY);
SIEHE AUCH
basename(1), chdir(2), basename(3G).
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98