NOMBRE¶
strdup, strndup, strdupa, strndupa - duplican una cadena de caracteres
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.
SVID 3, BSD 4.3.
strndup(),
strdupa(), y
strndupa() son
extensiones de GNU.
VÉASE TAMBIÉN¶
alloca(3),
calloc(3),
free(3),
malloc(3),
realloc(3)