Provided by: manpages-pl-dev_20060617-3_all bug

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.