Rechercher une page de manuel
basename
Langue: pl
Version: 2000-12-14 (openSuse - 09/10/07)
Section: 3 (Bibliothèques de fonctions)
NAZWA
dirname, basename - wydzielenie sk³adników nazwy ¶cie¿ki dostêpuSK£ADNIA
#include <libgen.h> char *dirname(char *path); char *basename(char *path);
OPIS
Funkcje dirname i basename rozbijaj± zakoñczony znakiem null ³añcuch nazwy ¶cie¿ki dostêpu na sk³adowe: katalog i nazwê pliku. W typowym przypadku dirname zwraca ³añcuch a¿ do ostatniego znaku '/', ale z jego wy³±czeniem, a basename zwraca sk³adow± nastêpuj±c± po ostatnim '/'. Koñcowe znaki '/' nie s± uwa¿ane za czê¶æ nazwy ¶cie¿ki dostêpu.Je¶li path nie zawiera uko¶nika, dirname zwraca ³añcuch ".", podczas gdy basename zwraca kopiê path. Je¶li path jest ³añcuchem "/", wówczas zarówno dirname jak i basename zwracaj± ³añcuch "/". Je¶li path jest wska¼nikiem NULL lub wskazuje na pusty ³añcuch znaków, to zarówno dirname jak i basename zwracaj± ³añcuch ".".
Po³±czenie ³añcucha zwróconego przez dirname, "/" i ³añcucha zwróconego przez basename daje pe³n± nazwê ¶cie¿ki dostêpu.
Zarówno dirname jak i basename mog± modyfikowaæ zawarto¶æ path, wiêc je¿eli chce siê zachowaæ ³añcuch ¶cie¿ki dostêpu, to nale¿y przekazywaæ do tych funkcji jego kopiê. Ponadto dirname i basename mog± zwracaæ wska¼niki do pamiêci przydzielonej statycznie, która mo¿e byæ nadpisana nastêpnymi wywo³aniami.
Poni¿sza lista przyk³adów (wziêta z SUSv2) pokazuje ³añcuchy znaków zwracane przez dirname i basename dla ró¿nych ¶cie¿ek:
¶cie¿ka dirname basename "/usr/lib" "/usr" "lib" "/usr/" "/" "usr" "usr" "." "usr" "/" "/" "/" "." "." "." ".." "." ".."
PRZYK£AD
char *dirc, *basec, *bname, *dname; char *path = "/etc/passwd"; dirc = strdup(path); basec = strdup(path); dname = dirname(dirc); bname = basename(basec); printf("dirname=%s, basename=%s\n", dname, bname); free(dirc); free(basec);
WARTO¦Æ ZWRACANA
Zarówno dirname jak i basename zwracaj± wska¼niki do zakoñczonych znakiem null ³añcuchów znaków.B£ÊDY
W wersjach glibc a¿ do 2.2.1 w³±cznie, dirname nieprawid³owo obs³uguje nazwy ¶cie¿ek dostêpu z koñcowymi znakami '/', i generuje naruszenie segmentacji, gdy poda siê NULL jako argument.ZGODNE Z
SUSv2ZOBACZ TAK¯E
dirname(1), basename(1),Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre