memcpy(3) Library Functions Manual memcpy(3) NOM memcpy - Copier une zone memoire BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include void *memcpy(void dest[restrict .n], const void src[restrict .n], size_t n); DESCRIPTION La fonction memcpy() copie n octets depuis la zone memoire src vers la zone memoire dest. Les deux zones ne doivent pas se chevaucher. Si c'est le cas, utilisez plutot memmove(3). VALEUR RENVOYEE La fonction memcpy() renvoie un pointeur sur dest. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |memcpy() | Securite des threads | MT-Safe | +---------------------------------+--------------------------+---------+ STANDARDS C11, POSIX.1-2008. HISTORIQUE POSIX.1-2001, C89, SVr4, 4.3BSD. AVERTISSEMENTS Le manque de conformite avec l'exigence voulant que les zones memoire ne se chevauchent pas a constitue la source de nombreux bogues. Les normes POSIX et C declarent expressement que l'utilisation de memcpy() sur des zones qui se chevauchent conduit a un comportement non defini. 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 etaient copies de src dans dest. Ce changement a entraine des dysfonctionnements dans un bon nombre d'applications qui copiaient des zones se chevauchant. L'ordre dans lequel les octets sont copies dans les implementations precedentes a cache ce bogue de facon fortuite et il est apparu lorsque l'ordre de la copie a ete inverse. Un symbole versionne a ete ajoute a la glibc 2.14 de facon a ce que d'anciens binaires (comme ceux dont les liens ont ete edites vers des versions anterieures a la glibc 2.14) emploient une implementation de memcpy() qui gere le cas du chevauchement de facon sure (en fournissant une << ancienne >> implementation de memcpy() qui a ete renommee en memmove(3)). VOIR AUSSI bcopy(3), bstring(3), memccpy(3), memmove(3), mempcpy(3), strcpy(3), strncpy(3), wmemcpy(3) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot , Frederic Hantrais et Gregoire Scano Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 memcpy(3)