_mbscpy_s, wcscpy_s strcpy_s
문자열을 복사 합니다.이러한 버전의 수 strcpy, wcscpy, _mbscpy 에 설명 된 대로 보안 향상 기능을 CRT의 보안 기능.
중요 |
---|
_mbscpy_s런타임에서 Windows를 실행 하는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /zw에 지원 되는 CRT 함수. |
errno_t strcpy_s(
char *strDestination,
size_t numberOfElements,
const char *strSource
);
errno_t wcscpy_s(
wchar_t *strDestination,
size_t numberOfElements,
const wchar_t *strSource
);
errno_t _mbscpy_s(
unsigned char *strDestination,
size_t numberOfElements,
const unsigned char *strSource
);
template <size_t size>
errno_t strcpy_s(
char (&strDestination)[size],
const char *strSource
); // C++ only
template <size_t size>
errno_t wcscpy_s(
wchar_t (&strDestination)[size],
const wchar_t *strSource
); // C++ only
template <size_t size>
errno_t _mbscpy_s(
unsigned char (&strDestination)[size],
const unsigned char *strSource
); // C++ only
매개 변수
strDestination
대상 문자열 버퍼의 위치numberOfElements
대상 문자열 버퍼의 크기입니다.strSource
소스를 null로 끝나는 문자열 버퍼입니다.
반환 값
성공 하는 경우에 0입니다. 그렇지 않으면 오류입니다.
오류 조건
strDestination |
numberOfElements |
strSource |
반환 값 |
내용strDestination |
---|---|---|---|---|
NULL |
any |
any |
EINVAL |
수정 되지 않음 |
any |
any |
NULL |
EINVAL |
strDestination[0] 0으로 설정 |
any |
0 또는 너무 작아서 |
any |
ERANGE |
strDestination[0] 0으로 설정 |
설명
strcpy_s 함수는 주소에 내용을 복사 strSource에 지정 된 위치에는 종료 null 문자를 포함 하 여 strDestination.대상 문자열이 너무 작아서 null 종결 문자를 포함 하 여 원본 문자열을 저장할 수 있어야 합니다.동작을 strcpy_s 원본 및 대상 문자열 겹칠 경우 정의 되어 있지 않습니다.
wcscpy_s및 _mbscpy_s 와이드 및 멀티 바이트 문자 버전의 strcpy_s 각각.인수 및 반환 값을 wcscpy_s 와이드 문자 문자열입니다. _mbscpy_s 멀티 바이트 문자 문자열입니다.이러한 세 가지 함수 그렇지에 동일 하 게 동작 합니다.
경우 strDestination 또는 strSource 는 null 포인터 또는 대상 문자열 너무 작으면에 설명 된 대로 잘못 된 매개 변수 처리기를 호출 됩니다 매개 변수 유효성 검사.이러한 함수는 실행을 계속 하도록 허용 된 경우, 반환 EINVAL 및 설정 errno 에 EINVAL.
성공적으로 실행 되 면 null 종료 항상 대상 문자열이입니다.
C + +에서는 이러한 함수를 사용 하 여 템플릿 오버 로드에 의해 단순화 됩니다. 오버 로드에서 버퍼 길이 자동으로 유추할 수 있습니다 (size 인수를 지정할 필요가 없도록) 및 해당 최신, 안전한 이미지와 이전, 안전 하지 않은 함수가 자동으로 바꿀 수 있습니다.자세한 내용은 보안 템플릿 오버 로드을 참조하십시오.
이러한 함수의 디버그 버전이 먼저 0xFE 사용 하 여 버퍼를 채웁니다.이 동작을 비활성화 하려면 _CrtSetDebugFillThreshold.
일반 텍스트 루틴 매핑
TCHAR입니다.H 루틴 |
_UNICODE 및 _Mbcs가 정의 되어 있지 않습니다 |
_Mbcs가 정의 |
_Unicode가 정의 |
---|---|---|---|
_tcscpy_s |
strcpy_s |
_mbscpy_s |
wcscpy_s |
요구 사항
루틴 |
필수 헤더 |
---|---|
strcpy_s |
<string.h> |
wcscpy_s |
<string.h> 또는 <wchar.h> |
_mbscpy_s |
<mbstring.h> |
추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.
예제
// crt_strcpy_s.cpp
// This program uses strcpy_s and strcat_s
// to build a phrase.
//
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
int main( void )
{
char string[80];
// using template versions of strcpy_s and strcat_s:
strcpy_s( string, "Hello world from " );
strcat_s( string, "strcpy_s " );
strcat_s( string, "and " );
// of course we can supply the size explicitly if we want to:
strcat_s( string, _countof(string), "strcat_s!" );
printf( "String = %s\n", string );
}
해당 .NET Framework 항목
참고 항목
참조
strncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l