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

NAZWA

       strdup, strndup, strdupa, strndupa - powielenie łańcucha

SKŁADNIA

       #include <string.h>

       char *strdup(const char *s);

       char *strndup(const char *s, size_t n);
       char *strdupa(const char *s);
       char *strndupa(const char *s, size_t n);

   Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

       strdup():
           _XOPEN_SOURCE >= 500
               || /* Od glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
               || /* Glibc w wersji <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
       strndup():
           Od glibc 2.10:
               _POSIX_C_SOURCE >= 200809L
           Przed glibc 2.10:
               _GNU_SOURCE
       strdupa(), strndupa(): _GNU_SOURCE

OPIS

       Funkcja  strdup()  zwraca  wskaźnik do nowego łańcucha, który stanowi kopię łańcucha s. Pamięć dla nowego
       łańcucha jest przydzielana za pomocą malloc(3) i może być zwolniona za pomocą free(3).

       Funkcja strndup() jest podobna, lecz kopiuje co najwyżej n znaków. Jeśli s jest dłuższe niż n,  kopiowane
       jest tylko n znaków i dodawany jest kończący znak null ('\0').

       strdupa()  i  strndupa() są podobne, ale korzystają z alloca(3) do przydzielania pamięci na bufor. Są one
       dostępne wyłącznie, gdy używany jest pakiet GNU GCC, i dotyczą ich te same ograniczenia, które opisano  w
       alloca(3).

WARTOŚĆ ZWRACANA

       Funkcja strdup() zwraca wskaźnik do skopiowanego łańcucha. Zwraca NULL, gdy nie jest dostępna dostateczna
       ilość pamięci, i ustawia errno, wskazując na przyczynę błędu.

BŁĘDY

       ENOMEM Nie można przydzielić dostatecznej ilości pamięci potrzebnej dla kopii łańcucha.

ATRYBUTY

       Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).

       ┌────────────────────────────────┬────────────────────────┬─────────┐
       │InterfejsAtrybutWartość │
       ├────────────────────────────────┼────────────────────────┼─────────┤
       │strdup(), strndup(), strdupa(), │ Bezpieczeństwo wątkowe │ MT-Safe │
       │strndupa()                      │                        │         │
       └────────────────────────────────┴────────────────────────┴─────────┘

ZGODNE Z

       strdup() jest zgodne z SVr4, 4.3BSD, POSIX.1-2001. strndup() jest  zgodna  z  POSIX.1-2008.  strdupa()  i
       strndupa() są rozszerzeniami GNU.

ZOBACZ TAKŻE

       alloca(3), calloc(3), free(3), malloc(3), realloc(3), string(3), wcsdup(3)

O STRONIE

       Angielska  wersja  tej strony pochodzi z wydania 4.07 projektu Linux man-pages. Opis projektu, informacje
       dotyczące   zgłaszania   błędów   oraz   najnowszą   wersję   oryginału   można   znaleźć   pod   adresem
       https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

       Autorami  polskiego  tłumaczenia  niniejszej  strony  podręcznika  man  są:  Andrzej Krzysztofowicz (PTM)
       <ankry@mif.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>.

       Polskie tłumaczenie jest częścią  projektu  manpages-pl;  uwagi,  pomoc,  zgłaszanie  błędów  na  stronie
       http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją  4.07 oryginału.