Provided by: manpages-pl-dev_4.23.1-1_all
NAZWA
strdup, strndup, strdupa, strndupa - powiela łańcuch
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
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(), strdupa(), strndupa() │ Bezpieczeństwo wątkowe │ MT-bezpieczne │ └────────────────────────────────────────────────┴────────────────────────┴───────────────┘
STANDARDY
strdup() strndup() POSIX.1-2008. strdupa() strndupa() GNU.
HISTORIA
strdup() SVr4, 4.3BSD-Reno, POSIX.1-2001. strndup() POSIX.1-2008. strdupa() strndupa() 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 <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⟩.