Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       strcpy, strncpy - Copier une chaine

SYNOPSIS

       #include <string.h>

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

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

DESCRIPTION

       La  fonction  strcpy()  copie  la  chaine pointee par src, y compris le
       caractere nul (<< \0 >>) final dans la chaine  pointee  par  dest.  Les
       deux  chaines  ne  doivent  pas se chevaucher. La chaine dest doit etre
       assez grande pour accueillir la copie.

       La fonction strncpy() est identique, sauf qu'au plus n  octets  de  src
       sont  copies.  Attention :  s'il  n'y a pas de caractere nul dans les n
       premiers octets de src, la chaine resultante dans dest ne disposera pas
       de caractere nul final.

       Si  la  longueur de src est inferieure a n, strncpy() remplit la fin de
       dest avec des caracteres nuls.

       Une implementation simple de strncpy() pourrait etre :

           char*
           strncpy(char *dest, const char *src, size_t n){
               size_t i;

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

               return dest;
           }

VALEUR RENVOY'EE

       Les fonctions strcpy() et strncpy() renvoient un pointeur sur la chaine
       destination dest.

CONFORMIT'E

       SVr4, BSD 4.3, C89, C99.

NOTES

       Certains programmeurs considerent strncpy() comme inefficace et propice
       aux erreurs. Si le programmeur sait (c'est-a-dire en ajoutant  du  code
       pour  effectuer  le  test !)  que la taille de dest est superieure a la
       longueur de src, alors strcpy() peut etre utilisee.

       S'il n'y a pas d'octet nul de fin dans les  n  premiers  caracteres  de
       src,   strncpy()  produit  une  chaine  non  terminee  dans  dest.  Les
       programmeurs evitent souvent cette erreur en forcant la fin  de  chaine
       de cette facon :

           strncpy(buf, str, n);
           if (n > 0)
               buf[n - 1]= '\0';

BOGUES

       Si  la  chaine  de  destination  d'un  strcpy()  n'est pas suffisamment
       grande, n'importe quoi peut survenir. Un depassement de tampon pour une
       chaine de taille fixe est la technique favorite de pirates pour prendre
       le controle d'une machine. A chaque fois qu'un programme lit  ou  copie
       des  donnees dans un tampon, le programme doit d'abord verifier qu'il y
       a suffisamment de place. Ca peut ne pas etre necessaire si vous  pouvez
       montrer  qu'un  depassement est impossible, mais faites attention : les
       programmes changes au cours du temps, et ce qui etait  impossible  peut
       devenir possible.

VOIR AUSSI

       bcopy(3),  memccpy(3),  memcpy(3),  memmove(3),  stpcpy(3),  string(3),
       strdup(3), wcscpy(3), wcsncpy(3)

COLOPHON

       Cette page fait partie de  la  publication  3.27  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

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

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

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

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.