strdup(3)

NAZWA
strdup, strndup - powiela łańcuch

BIBLIOTEKA
Standardowa biblioteka C (libc, -lc)

SKŁADNIA
#include <string.h>

char *strdup(const char *s);

char *strndup(size_t n;
              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

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').

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 błąd.

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() | Bezpieczeństwo wątkowe | MT-bezpieczne

STANDARDY
POSIX.1-2008.

HISTORIA

strdup()
    SVr4, 4.3BSD-Reno, POSIX.1-2001.

strndup()
    POSIX.1-2008.

ZOBACZ TAKŻE
alloca(3), calloc(3), free(3), malloc(3), realloc(3), string(3), strdupa(3), strndupa(3), wcsdup(3)

TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

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 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.