다음을 통해 공유


mbstowcs_s, _mbstowcs_s_l

멀티 바이트 문자 시퀀스에 해당 시퀀스의 와이드 문자를 변환합니다.버전 mbstowcs, _mbstowcs_l 에서 설명한 것 처럼 보안 강화로 CRT의 보안 기능.

errno_t mbstowcs_s(
   size_t *pReturnValue,
   wchar_t *wcstr,
   size_t sizeInWords,
   const char *mbstr,
   size_t count 
);
errno_t _mbstowcs_s_l(
   size_t *pReturnValue,
   wchar_t *wcstr,
   size_t sizeInWords,
   const char *mbstr,
   size_t count,
   _locale_t locale
);
template <size_t size>
errno_t mbstowcs_s(
   size_t *pReturnValue,
   wchar_t (&wcstr)[size],
   const char *mbstr,
   size_t count 
); // C++ only
template <size_t size>
errno_t _mbstowcs_s_l(
   size_t *pReturnValue,
   wchar_t (&wcstr)[size],
   const char *mbstr,
   size_t count,
   _locale_t locale
); // C++ only

매개 변수

  • [out] pReturnValue
    문자를 변환 합니다.

  • [out] wcstr
    결과 변환 된 와이드 문자열을 위한 버퍼의 주소입니다.

  • [in] sizeInWords
    크기는 wcstr 버퍼 단어에서.

  • [in]mbstr
    시퀀스의 null 주소 멀티 바이트 문자를 종료 합니다.

  • [in] count
    최대 와이드 문자를 저장 하는 wcstr 버퍼 종료 null을 포함 하지 않는, 또는 _TRUNCATE.

  • [in] locale
    사용 되는 로캘.

반환 값

이 작업이 성공 하면 0, 실패 시 오류 코드입니다.

오류 조건

값을 반환 하 고errno

wcstris NULL and sizeInWords > 0

EINVAL

mbstr가 NULL인 경우

EINVAL

대상 버퍼가 너무 작아 변환 된 문자열을 포함할 수입니다 (하지 않는 한 count 입니다 _TRUNCATE. 아래 참고 참조)

ERANGE

wcstris not NULL and sizeInWords == 0

EINVAL

이러한 조건 중 하나라도 발생 하는 경우 예외는 잘못 된 매개 변수에서 설명 된 것 처럼 호출 됩니다 매개 변수 유효성 검사 .계속 실행이 허용 되지 않으면 함수가 오류 코드를 반환 하 고 설정 errno 는 표에 표시 된 대로.

설명

mbstowcs_s 함수 변환 문자열을 멀티 바이트 문자를 가리키는 mbstr 가 가리키는 버퍼에 저장 된 와이드 문자에 wcstr.변환이 각 문자에 대해 이러한 조건 중 하나가 만족 될 때까지 계속:

  • 멀티 바이트 null 문자를 발견 했습니다.

  • 잘못 된 멀티 바이트 문자가 나타날 때

  • 와이드 문자 저장 개수는 wcstr equals 버퍼 count.

항상 대상 문자열은 null로 끝나는 (오류 경우에)입니다.

경우 count 특수 값인 _TRUNCATE, 다음 mbstowcs_s 여전히 그대로 두고 공간에 null 종결자에 대 한 대상 버퍼에 맞게 최대한 will 문자열로 변환 합니다.

경우 mbstowcs_s 소스 문자열을 성공적으로 변환 와이드 문자에 null 종결자를 포함 하 여 변환 된 문자열의 크기를 넣습니다 *pReturnValue (제공 pReturnValue 수 없습니다 NULL).이런 경우에는 wcstr 인수 NULL 및 필요한 버퍼 크기를 결정 하는 방법을 제공 합니다.Note that if wcstr is NULL, count is ignored, and sizeInWords must be 0.

경우 mbstowcs_s 에 잘못 된 멀티 바이트 문자가 발견 0에 배치 *pReturnValue를 빈 문자열로 설정 하는 대상 버퍼, 설정 errno 에 EILSEQ, 반환 하 고 EILSEQ.

시퀀스 가리키는 경우 mbstr 및 wcstr 겹치는 동작을 mbstowcs_s 는 정의 되지 않습니다.

보안 정보보안 정보

확인 wcstr 및 mbstr 서로 중첩 되지 않습니다 및 count 변환할 멀티 바이트 문자 수가 정확 하 게 반영 합니다.

mbstowcs_s현재 로케일에 대 한 모든 로캘별 동작을 사용합니다. _mbstowcs_s_l대신 전달 된 로캘을 사용 하는 점을 제외 하 고는 동일 합니다.자세한 내용은 로캘를 참조하십시오.

C + +에서는 이러한 함수를 사용 하 여 템플릿 오버 로드에 의해 간소화 되었습니다. 오버 로드에서 버퍼 길이가 자동으로 유추할 수 있습니다 (size 인수를 지정할 필요가 없습니다)와 함께 새로운, 안전한 가방 이전, 안전 하지 않은 함수 자동으로 바꿀 수 있습니다.자세한 내용은 보안 템플릿 오버 로드를 참조하십시오.

요구 사항

루틴

필수 헤더

mbstowcs_s

<stdlib.h>

_mbstowcs_s_l

<stdlib.h>

추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

해당 .NET Framework 항목

해당 사항 없음. 표준 C 함수를 호출 하려면 사용 PInvoke. 자세한 내용은 플랫폼 호출 예제.

참고 항목

참조

데이터 변환

로캘

MultiByteToWideChar

멀티 바이트 문자 시퀀스로 해석

_mbclen, mblen, _mblen_l

mbtowc, _mbtowc_l

wcstombs, _wcstombs_l

wctomb, _wctomb_l