memcpy

MEMCPY(3)                   Linux-Programmierhandbuch                  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 erheblichen 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.

       Diese Änderung deckte Defekte in einer Reihe von Anwendungen auf, die
       überlappende Bereiche kopierten. Unter der bisherigen Implementierung
       hatte die Reihenfolge, in der Bytes kopiert wurden, den Fehler
       zufälligerweise versteckt, was dann bei der Änderung der
       Kopierreihenfolge aufgedeckt wurde. Unter Glibc 2.14 wurde ein
       versioniertes Symbol hinzugefügt, so dass alte Programme (d.h. solche,
       die gegen Glibc-Versionen älter als 2.14 gelinkt worden waren) eine
       memcpy()-Implementierung einsetzten, die solche überlappende Pufferfälle
       sicher handhabt (indem sie eine »ältere« Implementierung von memcpy()
       verwendet, die als memmove(3) bekannt gemacht wurde).

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

KOLOPHON
       Diese Seite ist Teil der Veröffentlichung 5.08 des Projekts
       Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie
       Fehler gemeldet werden können sowie die aktuelle Version dieser Seite
       finden sich unter 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>.



                               15. September 2017                      MEMCPY(3)