Provided by: manpages-de-dev_2.14-1_all bug

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.

       ┌──────────────┬───────────────────────┬─────────┐
       │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 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  4.16  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)