Provided by: manpages-fr-dev_4.13-4_all bug

NOM

       memcpy - Copier une zone mémoire

SYNOPSIS

       #include <string.h>

       void *memcpy(void *dest, const void *src, size_t n);

DESCRIPTION

       La  fonction memcpy() copie n octets depuis la zone mémoire src vers la zone mémoire dest. Les deux zones
       ne doivent pas se chevaucher. Si c'est le cas, utilisez plutôt memmove(3).

VALEUR RENVOYÉE

       La fonction memcpy() renvoie un pointeur sur dest.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).
       ┌───────────┬──────────────────────┬─────────┐
       │ InterfaceAttributValeur  │
       ├───────────┼──────────────────────┼─────────┤
       │ memcpy()  │ Sécurité des threads │ MT-Safe │
       └───────────┴──────────────────────┴─────────┘

CONFORMITÉ

       POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.

NOTES

       Le manque de conformité avec l'exigence voulant que les zones mémoire ne se chevauchent pas  a  constitué
       la  source de nombreux bogues. Les normes POSIX et C déclarent expressément que l'utilisation de memcpy()
       sur des zones qui se chevauchent conduit à un comportement non défini. En particulier,  une  optimisation
       de  performance  de  memcpy()  sur  certaines  plateformes,  dont  x86-64, dans la glibc 2.13 incluait un
       changement de l'ordre dans lequel les octets étaient copiés de src dans dest.

       Ce changement a entraîné des dysfonctionnements dans un bon nombre d'applications qui copiaient des zones
       se chevauchant. L'ordre dans lequel les octets sont copiés dans les implémentations précédentes  a  caché
       ce  bogue  de  façon  fortuite  et  il  est  apparu lorsque l'ordre de la copie a été inversé. Un symbole
       versionné a été ajouté à la glibc 2.14 de façon à ce que d'anciens binaires (comme ceux  dont  les  liens
       ont  été  édités  vers des versions antérieures à la glibc 2.14) emploient une implémentation de memcpy()
       qui gère le cas du chevauchement de  façon  sûre  (en  fournissant  une  « ancienne »  implémentation  de
       memcpy() qui a été renommée en memmove(3)).

VOIR AUSSI

       bcopy(3), bstring(3), memccpy(3), memmove(3), mempcpy(3), strcpy(3), strncpy(3), wmemcpy(3)

COLOPHON

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

TRADUCTION

       La  traduction  française   de   cette   page   de   manuel   a   été   créée   par   Christophe   Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>, François Micaux, Alain Portal  <aportal@univ-montp2.fr>,  Jean-Philippe  Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,     Thomas     Huriaux      <thomas.huriaux@gmail.com>,      Nicolas      François
       <nicolas.francois@centraliens.net>,     Florentin     Duneau    <fduneau@gmail.com>,    Simon    Paillard
       <simon.paillard@resel.enst-bretagne.fr>,    Denis    Barbier    <barbier@debian.org>,    David     Prévot
       <david@tilapin.org>, Frédéric Hantrais <fhantrais@gmail.com> et Grégoire Scano <gregoire.scano@malloc.fr>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel,  veuillez  envoyer  un  message  à
       debian-l10n-french@lists.debian.org.

                                                15 septembre 2017                                      MEMCPY(3)