Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

       memcpy - メモリー領域をコピーする。

書式

       #include <string.h>

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

説明

       memcpy()   はメモリー領域 src の先頭 n バイトを メモリー領域 dest にコピーする。コピー元の領域と コピー先
       の領域が重なってはならない。重なっている場合は memmove(3)  を使うこと。

返り値

       memcpy()  は dest へのポインターを返す。

属性

       この節で使用されている用語の説明については、 attributes(7) を参照。
       ┌──────────────────┬───────────────┬─────────┐
       │ インターフェース属性      │
       ├──────────────────┼───────────────┼─────────┤
       │ memcpy()         │ Thread safety │ MT-Safe │
       └──────────────────┴───────────────┴─────────┘

準拠

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

注意

       Failure to observe the requirement that  the  memory  areas  do  not  overlap  has  been  the  source  of
       significant  bugs.   (POSIX  and  the  C standards are explicit that employing memcpy()  with overlapping
       areas produces undefined behavior.)  Most notably, in glibc 2.13 a performance optimization  of  memcpy()
       on  some  platforms (including x86-64) included changing the order in which bytes were copied from src to
       dest.

       This change revealed breakages in a number of applications that performed copying with overlapping areas.
       Under the previous implementation, the order in which the bytes were copied had fortuitously  hidden  the
       bug, which was revealed when the copying order was reversed.  In glibc 2.14, a versioned symbol was added
       so  that  old binaries (i.e., those linked against glibc versions earlier than 2.14)  employed a memcpy()
       implementation that safely handles the  overlapping  buffers  case  (by  providing  an  "older"  memcpy()
       implementation that was aliased to memmove(3)).

関連項目

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

この文書について

       この  man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告
       に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

                                                   2017-09-15                                          MEMCPY(3)