STRDUP(3)

NOMBRE
strdup, strndup, strdupa, strndupa - duplican una cadena de caracteres

SINOPSIS
#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);

    Requisitos de Macros de Prueba de Características para glibc (véase feature_test_macros(7)):

strdup():
    _XOPEN_SOURCE >= 500
        || /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
        || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
strndup():
    Desde glibc 2.10:
        _POSIX_C_SOURCE >= 200809L
    Antes de glibc 2.10:
        _GNU_SOURCE
strdupa(), strndupa(): _GNU_SOURCE

DESCRIPCIÓN
La función strdup() devuelve un puntero a una nueva cadena de caracteres que es un duplicado de la cadena apuntada por s. La memoria para la nueva cadena se obtiene automáticamente con malloc(3), y puede (y debe) liberarse con free(3).

The strndup() function is similar, but copies at most n bytes. If s is longer than n, only n bytes are copied, and a terminating null byte ('\0') is added.

strdupa() y strndupa() son similares, pero usan alloca(3) para reservar el buffer. Sólo están disponibles cuando se usa la aplicación GNU GCC, y sufren las mismas limitaciones descritas en alloca(3).

VALOR DEVUELTO
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 cause of the error.

ERRORES

ENOMEM
    Memoria insuficiente disponible para alojar la cadena duplicada.

ATRIBUTOS
Para obtener una explicación de los términos usados en esta sección, véase attributes(7).
Interfaz | Atributo | Valor
strdup(), strndup(), strdupa(), strndupa() | Seguridad del hilo | Multi-hilo seguro

CONFORME A
strdup() conforms to SVr4, 4.3BSD, POSIX.1-2001. strndup() conforms to POSIX.1-2008. strdupa() and strndupa() are GNU extensions.

VÉASE TAMBIÉN
alloca(3), calloc(3), free(3), malloc(3), realloc(3), string(3), wcsdup(3)

COLOFÓN
Esta página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar una descripción del proyecto, información sobre cómo informar errores y la última versión de esta página en https://www.kernel.org/doc/man-pages/.

TRADUCCIÓN
La traducción al español de esta página del manual fue creada por Gerardo Aburruzaga García <gerardo.aburruzaga@uca.es> Esta traducción es documentación libre; lea la GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a debian-l10n-spanish@lists.debian.org>..