Provided by: manpages-fr-dev_4.26.0-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 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.

Pages du manuel de Linux 6.9.1                     2 mai 2024                                          memcpy(3)