다음을 통해 공유


memcpy_s, wmemcpy_s

버퍼 간에 바이트를 복사합니다. 이러한 함수는 CRTmemcpywmemcpy보안 기능에 설명된 대로 보안이 향상된 버전입니다.

구문

errno_t memcpy_s(
   void *dest,
   size_t destSize,
   const void *src,
   size_t count
);
errno_t wmemcpy_s(
   wchar_t *dest,
   size_t destSize,
   const wchar_t *src,
   size_t count
);

매개 변수

dest
새 버퍼입니다.

destSize
대상 버퍼의 크기(바이트 memcpy_s ) 및 와이드 문자(wchar_t)의 크기 wmemcpy_s입니다.

src
복사할 버퍼입니다.

count
복사할 문자 수입니다.

반환 값

성공 시 0이고, 실패 시 오류 코드입니다.

오류 조건

dest destSize src count 반환 값 dest의 내용
any any any 0 0 Not modified
NULL any any 0이 아닌 값 EINVAL Not modified
any any NULL 0이 아닌 값 EINVAL dest가 0이 됨
any < count any 0이 아닌 값 ERANGE dest가 0이 됨

설명

memcpy_s에서 바이트를 src 복사하고 destwmemcpy_s 와이드 문자를 복사합니다count.count 원본 및 대상 지역이 겹치면 동작 memcpy_s 이 정의되지 않습니다. memmove_s를 사용하면 겹치는 영역을 처리할 수 있습니다.

이러한 함수는 해당 함수 매개 변수의 유효성을 검사합니다. 0이 아니거나 dest null 포인터이거나 destSizesrc 보다 count작은 경우 count 이러한 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다. 실행을 계속하도록 허용된 경우 이러한 함수는 반환 EINVAL 또는 ERANGE반환 값으로 설정합니다 errno .

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT의 전역 상태를 참조하세요.

요구 사항

루틴에서 반환된 값 필수 헤더
memcpy_s <memory.h> 또는 <string.h>
wmemcpy_s <wchar.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

예시

// crt_memcpy_s.c
// Copy memory in a more secure way.

#include <memory.h>
#include <stdio.h>

int main()
{
   int a1[10], a2[100], i;
   errno_t err;

   // Populate a2 with squares of integers
   for (i = 0; i < 100; i++)
   {
      a2[i] = i*i;
   }

   // Tell memcpy_s to copy 10 ints (40 bytes), giving
   // the size of the a1 array (also 40 bytes).
   err = memcpy_s(a1, sizeof(a1), a2, 10 * sizeof (int) );
   if (err)
   {
      printf("Error executing memcpy_s.\n");
   }
   else
   {
     for (i = 0; i < 10; i++)
       printf("%d ", a1[i]);
   }
   printf("\n");
}
0 1 4 9 16 25 36 49 64 81

참고 항목

버퍼 조작
_memccpy
memchr, wmemchr
memcmp, wmemcmp
memmove, wmemmove
memset, wmemset
strcpy, wcscpy, _mbscpy
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l
strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l