Provided by: manpages-pl-dev_0.5-1_all bug

NAZWA

       dirname, basename - wydzielenie składników nazwy ścieżki dostępu

SKŁADNIA

       #include <libgen.h>

       char *dirname(char *path);

       char *basename(char *path);

OPIS

        Uwaga! To tłumaczenie może być nieaktualne!

       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

       SUSv2

ZOBACZ TAKŻE

       dirname(1), basename(1),

INFORMACJE O TŁUMACZENIU

       Powyższe  tłumaczenie  pochodzi  z nieistniejącego już Projektu Tłumaczenia Manuali i może
       nie być aktualne. W  razie  zauważenia  różnic  między  powyższym  opisem  a  rzeczywistym
       zachowaniem  opisywanego  programu  lub  funkcji,  prosimy  o  zapoznanie się z oryginalną
       (angielską) wersją strony podręcznika za pomocą polecenia:

              man --locale=C 3 basename

       Prosimy o pomoc w aktualizacji stron man - więcej informacji  można  znaleźć  pod  adresem
       http://sourceforge.net/projects/manpages-pl/.