Provided by: manpages-de-dev_4.21.0-2_all bug

BEZEICHNUNG

       memcpy - kopiert Speicherbereich

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

       #include <string.h>

       void *memcpy(void Ziel[restrict .n], const void Quelle[restrict .n],
                    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 │
       └─────────────────────────────────────────────────────────────────────┴───────────────────────┴─────────┘

STANDARDS

       POSIX.1-2001, POSIX.1-2008, 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 Berei‐
       chen 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 zu‐
       fä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)

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother  <krd@gulu.net>,  Martin  Eberhard
       Schauer  <Martin.E.Schauer@gmx.de>,  Helge  Kreutzmann  <debian@helgefjell.de> und Mario Blättermann <ma‐
       rio.blaettermann@gmail.com> 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.

Linux man-pages 6.03                            29. Dezember 2022                                      memcpy(3)