Provided by: manpages-fr-dev_4.23.1-1_all bug

NOM

       memcpy - Copier une zone mémoire

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <string.h>

       void *memcpy(void dest[restrict .n], const void src[restrict .n],
                    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 │
       └────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS

       C11, POSIX.1-2008.

HISTORIQUE

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

AVERTISSEMENTS

       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)

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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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⟩.