table of contents
STRDUP(3) | Podręcznik programisty Linuksa | STRDUP(3) |
NAZWA¶
strdup, strndup, strdupa, strndupa - powielenie łańcuchaSKŁ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():
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(), strndupa() | Bezpieczeństwo wątkowe | MT-Safe |
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 4.07 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 man są: Andrzej Krzysztofowicz (PTM) <ankry@mif.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>.Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 4.07 oryginału.
2016-03-15 | GNU |