strdup, strndup, strdupa, strndupa - powielenie łańcucha
Standardowa biblioteka C (libc, -lc)
#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);
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
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)EN i może być zwolniona za pomocą free(3)EN.
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.
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.
- ENOMEM
- Nie można przydzielić dostatecznej ilości pamięci potrzebnej dla kopii łańcucha.
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7)EN.
| Interfejs | Atrybut | Wartość |
| strdup(), strndup(), strdupa(), strndupa() | Bezpieczeństwo wątkowe | MT-Safe |
strdup() jest zgodne z SVr4, 4.3BSD, POSIX.1-2001. strndup() jest zgodna z POSIX.1-2008. strdupa() i strndupa() są rozszerzeniami GNU.
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.