Provided by: manpages-de-dev_4.13-4_all bug

BEZEICHNUNG

       memcpy - kopiert Speicherbereich

ÜBERSICHT

       #include <string.h>

       void *memcpy(void *Ziel, const void *Quelle, size_t n);

BESCHREIBUNG

       Die  Funktion  memcpy()  kopiert  n  Byte  von  Speicherbereich  Quelle  nach  Speicherbereich  Ziel. 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 Ziel zurück.

ATTRIBUTE

       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
       ┌───────────────┬───────────────────────┬─────────┐
       │ SchnittstelleAttributWert    │
       ├───────────────┼───────────────────────┼─────────┤
       │ 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 Quelle nach Ziel 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.10  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  die
       Mailingliste der Übersetzer.

                                               15. September 2017                                      MEMCPY(3)