strdup(3) Library Functions Manual strdup(3)

strdup, strndup, strdupa, strndupa, strndupa - duplică un șir de caractere

Biblioteca C standard (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);
Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

strdup():

    _XOPEN_SOURCE >= 500
        || /* Începând cu glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
        || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

strndup():

    Începând cu glibc 2.10
        _POSIX_C_SOURCE >= 200809L
    Înainte de glibc 2.10:
        _GNU_SOURCE

strdupa(), strndupa():

    _GNU_SOURCE

Funcția strdup() returnează un indicator către un nou șir de caractere care este un duplicat al șirului s. Memoria pentru noul șir este obținută cu malloc(3) și poate fi eliberată cu free(3).

Funcția strndup() este similară, dar copiază cel mult n octeți. În cazul în care s este mai lung decât n, se copiază numai n octeți și se adaugă un octet nul de terminare („\0”).

strdupa() și strndupa() sunt similare, dar utilizează alloca(3) pentru a aloca memoria tampon.

În caz de succes, funcția strdup() returnează un indicator la șirul duplicat. În cazul în care memoria disponibilă este insuficientă, se returnează NULL, iar errno este configurată pentru a indica eroarea.

Memorie insuficientă disponibilă pentru a aloca șirul duplicat.

Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).

Interfață Atribut Valoare
strdup(), strndup(), strdupa(), strndupa() Siguranța firelor MT-Safe

POSIX.1-2008.
GNU.

SVr4, 4.3BSD-Reno, POSIX.1-2001.
POSIX.1-2008.
GNU.

alloca(3), calloc(3), free(3), malloc(3), realloc(3), string(3), wcsdup(3)

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

31 octombrie 2023 Pagini de manual de Linux 6.06