NAZWA

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

BIBLIOTEKA

Standardowa biblioteka C ( libc, -lc)

SKŁADNIA

#include <string.h>
char *strdup(const char *s);
char *strndup(const char s[.n], size_t n);
char *strdupa(const char *s);
char *strndupa(const char s[.n], 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 <= 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.

WARTOŚĆ ZWRACANA

On success, the strdup() function returns a pointer to the duplicated string. It returns NULL if insufficient memory was available, with errno set to indicate the error.

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).
Interfejs Atrybut Wartość
strdup(), strndup(), strdupa(), strndupa() Bezpieczeństwo wątkowe MT-Safe
 

STANDARDY

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)

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej Krzysztofowicz <[email protected]>, Robert Luberda <[email protected]> i Michał Kułach <[email protected]>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej [email protected]

Recommended readings

Pages related to strdup you should read also: