strdup(3) Library Functions Manual strdup(3) NAZWA strdup, strndup, strdupa, strndupa - powielenie lancucha BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include 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 wskaznik do nowego lancucha, ktory stanowi kopie lancucha s. Pamiec dla nowego lancucha jest przydzielana za pomoca malloc(3) i moze byc zwolniona za pomoca free(3). Funkcja strndup() jest podobna, lecz kopiuje co najwyzej n znakow. Jesli s jest dluzsze niz n, kopiowane jest tylko n znakow i dodawany jest konczacy znak null ('\0'). strdupa() i strndupa() sa podobne, ale korzystaja z alloca(3) do przydzielania pamieci na bufor. WARTOSC ZWRACANA 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. BLEDY ENOMEM Nie mozna przydzielic dostatecznej ilosci pamieci potrzebnej dla kopii lancucha. ATRYBUTY Informacje o pojeciach uzywanych w tym rozdziale mozna znalezc w podreczniku attributes(7). +---------------------------+--------------------------+---------------+ |Interfejs | Atrybut | Wartosc | +---------------------------+--------------------------+---------------+ |strdup(), strndup(), | Bezpieczenstwo watkowe | MT-bezpieczne | |strdupa(), strndupa() | | | +---------------------------+--------------------------+---------------+ 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 TAKZE alloca(3), calloc(3), free(3), malloc(3), realloc(3), string(3), wcsdup(3) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Andrzej Krzysztofowicz , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.06 31 pazdziernika 2023 r. strdup(3)