MEMCPY(3)

BEZEICHNUNG
memcpy - kopiert Speicherbereich

ÜBERSICHT
#include <string.h>

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

BESCHREIBUNG
Die Funktion memcpy() kopiert n Byte von Speicherbereich src nach Speicherbereich dest. Die Speicherbereiche dürfen sich nicht überschneiden. Verwenden Sie memmove(3), wenn sich die Speicherbereiche überschneiden.

RÜCKGABEWERT
Die Funktion memcpy() gibt einen Zeiger auf dest zurück.

ATTRIBUTE
Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
Schnittstelle | Attribut | Wert
memcpy() | Multithread-Fähigkeit | MT-Safe

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

ANMERKUNGEN
Ignorierung der Anforderung, dass sich Speicherbereiche nicht überlappen, ist die Quelle von echten Fehlern. (POSIX und der C-Standard sagen deutlich, dass der Einsatz von memcpy() mit überlappenden Bereichen undefiniertes Verhalten hervorruft.) Insbesondere eine Leistungsoptimierung von memcpy() in Glibc 2.13 auf einigen Plattformen (darunter x86-64) führten zur Änderung der Reihenfolge in der Bytes von src nach dest kopiert wurden. This change revealed breakages in a number of applications that performed copying with overlapping areas. Under the previous implementation, the order in which the bytes were copied had fortuitously hidden the bug, which was revealed when the copying order was reversed. In glibc 2.14, a versioned symbol was added so that old binaries (i.e., those linked against glibc versions earlier than 2.14) employed a memcpy() implementation that safely handles the overlapping buffers case (by providing an "older" memcpy() implementation that was aliased to memmove(3)).

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

KOLOPHON
This page is part of release 4.11 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> und Helge Kreutzmann <debian@helgefjell.de> erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.