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

NAZWA

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

SKŁADNIA

       #include <string.h>

       char *strdup(const char *s);

       #define _GNU_SOURCE
       #include <string.h>

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

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 NUL.

       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 lub NULL, gdy
       nie jest dostępna dostateczna ilość pamięci.

BŁĘDY

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

ZGODNE Z

       SVID 3, BSD 4.3.  strndup(), strdupa() i strndupa()  są  rozszerzeniami
       GNU.

ZOBACZ TAKŻE

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