strndup(3) duplican una cadena de caracteres

Other Alias

strdup, strdupa, strndupa

SINOPSIS

#include <string.h>


char *strdup(const char *s);

#define _GNU_SOURCE
#include <string.h>

char *strndup(const char *s, size_t n);
char *strdupa(const char *s);
char *strndupa(const char *s, size_t n);

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).

La función strndup() es similar, pero solamente copia como máximo n carácteres. Si s es mayor que n, sólo se copian n carácteres, y se añade un NUL al final.

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

La función strdup() devuelve un puntero a la cadena duplicada, o NULL si no había bastante memoria.

ERRORES

ENOMEM
Memoria insuficiente disponible para alojar la cadena duplicada.

CONFORME A

SVID 3, BSD 4.3. strndup(), strdupa(), y strndupa() son extensiones de GNU.