Provided by: manpages-pl-dev_4.13-4_all 

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).
┌───────────┬────────────────────────┬─────────┐
│ Interfejs │ Atrybut │ Wartość │
├───────────┼────────────────────────┼─────────┤
│ 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 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)
O STRONIE
Angielska wersja tej strony pochodzi z wydania 5.10 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 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.
15 września 2017 r. MEMCPY(3)