STRDUP(3)

NOM
strdup, strndup, strdupa, strndupa - Dupliquer une chaîne

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

Exigences de macros de test de fonctionnalités pour la glibc (voir feature_test_macros(7)) :

strdup() : _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 500
strndup(), strdupa(), strndupa() : _GNU_SOURCE

DESCRIPTION
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 octet nul (« \0 ») est ajouté. strdupa() et strndupa() sont similaires, mais utilisent alloca(3) pour allouer le tampon. Elles sont directement utilisables avec GNU gcc(1), mais souffrent des mêmes restrictions que alloca(3).

VALEUR RENVOYÉE
La fonction strdup() renvoie un pointeur sur la chaîne dupliquée, ou NULL s'il n'y avait pas assez de mémoire.

ERREURS

ENOMEM
    Pas assez de mémoire disponible pour dupliquer la chaîne.

CONFORMITÉ
strdup() est conforme à SVr4, BSD 4.3 et POSIX.1-2001. strndup(), strdupa() et strndupa() sont des extensions GNU.

VOIR AUSSI
alloca(3), calloc(3), free(3), malloc(3), realloc(3), wcsdup(3)

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 9 novembre 1996 et révisée le 17 juillet 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 strdup ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.