Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

       strcat, strncat - Concaténer deux chaînes

SYNOPSIS

       #include <string.h>

       char *strcat(char *dest, const char *src);

       char *strncat(char *dest, const char *src, size_t n);

DESCRIPTION

       La  fonction  strcat() ajoute la chaîne src à la fin de la chaîne dest en écrasant l'octet
       nul (« \0 ») final à la fin de dest, puis en ajoutant  un  nouvel  octet  nul  final.  Les
       chaînes  ne  doivent  pas  se  chevaucher,  et  la chaîne dest doit être assez grande pour
       accueillir le résultat. Si dest n'est pas assez grande, le comportement du  programme  est
       imprévisible. Les dépassements de tampon font partie des moyens préférés pour attaquer les
       programmes sécurisés.

       La fonction strncat() est similaire, à la différence que :

       *  elle ne prend en compte que les n premiers octets de src.

       *  src n'a pas besoin de se terminer par un  caractère  nul  si  elle  contient  au  moins
          n octets.

       Comme pour strcat(), la chaîne résultante dans dest est toujours terminée par un caractère
       nul.

       Si src contient au moins n octets, strncat() écrit n+1 octets dans dest (n octets  de  src
       plus   le  caractère  nul  final).  De  ce  fait,  dest  doit  être  au  moins  de  taille
       strlen(dest)+n+1.

       Une implémentation simple de strncat() pourrait être :

           char*
           strncat(char *dest, const char *src, size_t n)
           {
               size_t dest_len = strlen(dest);
               size_t i;

               for (i = 0 ; i < n && src[i] != '\0' ; i++)
                   dest[dest_len + i] = src[i];
               dest[dest_len + i] = '\0';

               return dest;
           }

VALEUR RENVOYÉE

       Les fonctions strcat() et strncat() renvoient un pointeur sur la chaîne résultat dest.

ATTRIBUTS

   Multithreading (voir pthreads(7))
       Les fonctions strcat() et strncat() sont sûres dans un contexte multithread.

CONFORMITÉ

       SVr4, BSD 4.3, C89, C99.

NOTES

       Certains systèmes (BSD, Solaris et autres) fournissent la fonction suivante :

           size_t strlcat(char *dest, const char *src, size_t size);

       Cette fonction ajoute la chaîne src, terminée par un caractère nul, à la  chaîne  dest  en
       copiant au plus size-strlen(dest)-1 depuis src et ajoute un caractère nul en fin de chaîne
       au résultat sauf si size est inférieur à strlen(dest). Cette fonction corrige le  problème
       de dépassement de tampon de strcat(), mais l'appelant doit quand même gérer la possibilité
       de pertes de données si size est trop petit. La fonction renvoie la longueur de la  chaîne
       que  strlcat() a essayé de créer. Si la valeur renvoyée est supérieure à size, c'est qu'il
       y a eu perte de données. Si les pertes de données  sont  problématiques,  l'appelant  doit
       soit vérifier les arguments avant l'appel, soit tester la valeur de retour de la fonction.
       strlcat() n'existe pas dans glibc et n'est pas normalisé par POSIX,  mais  est  disponible
       sous Linux avec la bibliothèque libbsd.

VOIR AUSSI

       bcopy(3), memccpy(3), memcpy(3), strcpy(3), string(3), strncpy(3), wcscat(3), wcsncat(3)

COLOPHON

       Cette  page  fait partie de la publication 3.57 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe    Blaess    <http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <http://manpagesfr.free.fr/> (2003-2006). Nicolas  François  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>  ou  par  un  rapport  de  bogue   sur   le   paquet
       manpages-fr.

       Vous  pouvez  toujours  avoir  accès  à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».