Scroll to navigation

STRDUP(3) Podręcznik programisty Linuksa 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

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)

1993-04-12 GNU