Linux |
CentOS 4.8 |
|
strdup(3) |
strdup, strndup, strdupa, strndupa − Dupliquer une chaîne. |
#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); |
La fonction strdup() renvoie un pointeur sur une nouvelle chaîne de caractères qui est dupliquée depuis s. La mémoire occupée par cette nouvelle chaîne est obtenue en appelant malloc(3), et peut (doit) donc être libérée avec free(3). La fonction strndup() est identique, mais ne copie au plus que n caractères. Si s est plus grande que n, seuls n caractères sont copiés, et un caractère NUL est ajouté. strdupa et strndupa sont similaires, mais utilisent alloca(3) pour allouer le buffer. Elles sont directement utilisables avec GNUGCC, mais souffrent des mêmes restrictions que alloca(3). |
La fonction strdup() renvoie un pointeur sur la chaîne dupliquée, ou NULL s’il n’y avait pas assez de mémoire. |
ENOMEM |
Pas assez de mémoire disponible pour dupliquer la chaîne. |
SVID 3, BSD 4.3. strndup(), strdupa(), et strndupa() sont des extensions GNU. |
alloca(3), calloc(3), free(3), malloc(3), realloc(3) |
Christophe Blaess, 1997. |
strdup(3) |