Provided by: manpages-pl-dev_4.13-4_all 

NAZWA
strdup, strndup, strdupa, strndupa - powielenie łańcucha
SKŁADNIA
#include <string.h>
char *strdup(const char *s);
char *strndup(const char *s, size_t n);
char *strdupa(const char *s);
char *strndupa(const char *s, 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 w wersji <= 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. 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. Zwraca NULL, gdy nie jest dostępna dostateczna
ilość pamięci, i ustawia errno, wskazując na przyczynę błędu.
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(), │ Bezpieczeństwo wątkowe │ MT-Safe │
│ strndupa() │ │ │
└─────────────────────────────────┴────────────────────────┴─────────┘
ZGODNE Z
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)
O STRONIE
Angielska wersja tej strony pochodzi z wydania 5.10 projektu Linux man-pages. Opis projektu, informacje
dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem
https://www.kernel.org/doc/man-pages/.
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 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.
GNU 6 marca 2019 r. STRDUP(3)