focal (3) memcpy.3.gz

Provided by: manpages-de-dev_2.16-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  5.03  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)