Provided by: manpages-pl-dev_0.7-1_all bug

NAZWA

       memcpy - kopiuje obszar pamięci

SKŁADNIA

       #include <string.h>

       void *memcpy(void *dest, const void *src, size_t n);

OPIS

       Funkcja  memcpy() kopiuje n bajtów z obszaru pamięci src do obszaru pamięci dest.  Obszary
       te nie mogą na siebie nachodzić. Jeżeli obszary pamięci na siebie nachodzą, należy  używać
       memmove(3).

WARTOŚĆ ZWRACANA

       Funkcja memcpy() zwraca wskaźnik do dest.

ATRYBUTY

       Informacje   o   pojęciach   używanych   w  tym  rozdziale  można  znaleźć  w  podręczniku
       attributes(7).

       ┌──────────┬────────────────────────┬─────────┐
       │InterfejsAtrybutWartość │
       ├──────────┼────────────────────────┼─────────┤
       │memcpy()  │ Bezpieczeństwo wątkowe │ MT-Safe │
       └──────────┴────────────────────────┴─────────┘

ZGODNE Z

       POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.

UWAGI

       Zignorowanie wymogu nienachodzenia na siebie obszarów  pamięci  jest  źródłem  prawdziwych
       błędów  (Standardy  POSIX  i  C  jednoznacznie  określają,  że  wykorzystanie  memcpy()  z
       nachodzącymi na siebie obszarami pamięciami daje niezdefiniowane zachowanie). Co więcej, w
       glibc  2.13  na  niektórych  platformach  (w tym x86-64) przeprowadzana jest optymalizacja
       wydajności memcpy() obejmująca zmianę kolejności kopiowania bajtów z src do dest.

       Zmiana ta ujawniła poważne błędy w  wielu  aplikacjach  przeprowadzających  kopiowania  na
       nachodzących   obszarach   pamięci.   W  poprzedniej  implementacji,  w  której  kolejność
       kopiowanych bajtów szczęśliwie ukrywała ten błąd, który odsłonił się po jej odwróceniu.  W
       glibc  2.14  dodano  wersjonowany  symbol,  dzięki czemu stare pliki binarne (zlinkowane z
       glibc w wersji wcześniejszej niż 2.14) korzystają z implementacji memcpy() która w  sposób
       bezpieczny  obsługuje  przypadek  nachodzących  obszarów  pamięci (udostępniając "starszą"
       implementację memcpy(), która była aliasem memmove(3)).

ZOBACZ TAKŻE

       bcopy(3), memccpy(3), memmove(3), mempcpy(3), strcpy(3), strncpy(3), wmemcpy(3)

O STRONIE

       Angielska wersja tej strony  pochodzi  z  wydania  4.07  projektu  Linux  man-pages.  Opis
       projektu,  informacje  dotyczące  zgłaszania  błędów oraz najnowszą wersję oryginału można
       znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

       Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Jarosław Beczek (PTM)
       <bexx@poczta.onet.pl>,  Andrzej Krzysztofowicz (PTM) <ankry@mif.pg.gda.pl>, Robert Luberda
       <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>.

       Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów  na
       stronie   http://sourceforge.net/projects/manpages-pl/.   Jest   zgodne   z  wersją   4.07
       oryginału.

                                            2015-07-23                                  MEMCPY(3)