Provided by: manpages-pl-dev_4.23.1-1_all bug

NAZWA

       memcpy - kopiuje obszar pamięci

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

SKŁADNIA

       #include <string.h>

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

STANDARDY

       C11, POSIX.1-2008.

HISTORIA

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

ZASTRZEŻENIA

       Zignorowanie wymogu nienachodzenia na siebie obszarów pamięci jest źródłem  istotnych  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), bstring(3), memccpy(3), memmove(3), mempcpy(3), strcpy(3), strncpy(3), wmemcpy(3)

TŁUMACZENIE

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

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje  o  warunkach  licencji  można  uzyskać
       zapoznając   się   z   GNU General Public License w wersji 3   lub  nowszej.  Nie  przyjmuje  się  ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej  manpages-pl-
       list@lists.sourceforge.net.

Linux man-pages 6.8                              2 maja 2024 r.                                        memcpy(3)