[C-Sprache] Basisnamenfunktion

basename() ist eine C-Sprachbibliotheksfunktion, die häufig in der Linux-Systemprogrammierung verwendet wird und in der Header-Datei <libgen.h> enthalten ist. Die Funktion basename() wird verwendet, um den Dateinamenteil aus einem Pfad zu extrahieren. Die wichtigsten Prototypen sind wie folgt:

char *basename(char *path);

Bei einem gegebenen Dateipfad gibt basename einen Zeiger auf die Dateinamenzeichenfolge nach dem letzten „/“ im Pfad zurück. Zum Beispiel:

Pfad: /home/user/file.txt
Aufruf: Basisname("/home/user/file.txt")
Rückgabe: „file.txt“

Wenn der Pfad kein „/“ enthält, wird die gesamte Pfadzeichenfolge direkt zurückgegeben. basename() ändert nicht die ursprüngliche Eingabezeichenfolge, sondern gibt lediglich einen Zeiger zurück, der auf den Dateinamenteil des Pfads zeigt.

Der von basename() zurückgegebene Zeichenfolgenzeiger zeigt auf einen Teil der ursprünglichen Eingabepfadzeichenfolge und es wird kein neuer Speicher zugewiesen. Insbesondere zeigt der Rückgabewert von basename() auf die Teilzeichenfolge nach dem letzten „/“-Zeichen in der Pfadeingabezeichenfolge. Es wird nur ein Abschnitt der ursprünglichen Zeichenfolge entnommen und zurückgegeben, ohne dass Speicher kopiert oder neu zugewiesen wird. Zum Beispiel:

char path[] = "/home/user/file.txt";
char *name = Basisname(Pfad);

Hier verweist der Name auf die erste Adresse von „file.txt“ in der Pfadzeichenfolge und es wird kein neuer Speicher zugewiesen. Daher besteht keine Notwendigkeit, den Speicher, auf den der Name zeigt, ausdrücklich freizugeben. Im Prototyp von basename() gibt es keine Funktion wie malloc/free, die Speicher freigeben muss. Sie gibt lediglich einen Zeiger zurück.

Von der Konversations-KI

Guess you like

Origin blog.csdn.net/eidolon_foot/article/details/133157684