STRDUP(3)

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)