Provided by:
manpages-pl-dev_20060617-3_all 
NAZWA
dirname, basename - wydzielenie skladnikow nazwy cieki dostpu
SK/LADNIA
#include <libgen.h>
char *dirname(char *path);
char *basename(char *path);
OPIS
Funkcje dirname i basename rozbijaj zakoczony znakiem null lacuch nazwy
cieki dostpu na skladowe: katalog i nazw pliku. W typowym przypadku
dirname zwraca lacuch a do ostatniego znaku '/', ale z jego wylczeniem,
a basename zwraca skladow nastpujc po ostatnim '/'. Kocowe znaki '/'
nie s uwaane za cz nazwy cieki dostpu.
Jeli path nie zawiera ukonika, dirname zwraca lacuch ".", podczas gdy
basename zwraca kopi path. Jeli path jest lacuchem "/", wowczas
zarowno dirname jak i basename zwracaj lacuch "/". Jeli path jest
wskanikiem NULL lub wskazuje na pusty lacuch znakow, to zarowno dirname
jak i basename zwracaj lacuch ".".
Polczenie lacucha zwroconego przez dirname, "/" i lacucha zwroconego
przez basename daje peln nazw cieki dostpu.
Zarowno dirname jak i basename mog modyfikowa zawarto path, wic jeeli
chce si zachowa lacuch cieki dostpu, to naley przekazywa do tych
funkcji jego kopi. Ponadto dirname i basename mog zwraca wskaniki do
pamici przydzielonej statycznie, ktora moe by nadpisana nastpnymi
wywolaniami.
Ponisza lista przykladow (wzita z SUSv2) pokazuje lacuchy znakow
zwracane przez dirname i basename dla ronych cieek:
cieka dirname basename
"/usr/lib" "/usr" "lib"
"/usr/" "/" "usr"
"usr" "." "usr"
"/" "/" "/"
"." "." "."
".." "." ".."
PRZYK/LAD
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
Zarowno dirname jak i basename zwracaj wskaniki do zakoczonych znakiem
null lacuchow znakow.
B/LDY
W wersjach glibc a do 2.2.1 wlcznie, dirname nieprawidlowo obsluguje
nazwy cieek dostpu z kocowymi znakami '/', i generuje naruszenie
segmentacji, gdy poda si NULL jako argument.
ZGODNE Z
SUSv2
ZOBACZ TAKE
dirname(1), basename(1),
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu Tlumaczenia
Manuali i moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji,
prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.