다음을 통해 공유


wctomb_s, _wctomb_s_l

와이드 문자를 해당 멀티바이트 문자로 변환합니다. CRTwctomb_wctomb_l보안 기능에 설명된 대로 향상된 보안 기능이 있는 버전입니다.

구문

errno_t wctomb_s(
   int *pRetValue,
   char *mbchar,
   size_t sizeInBytes,
   wchar_t wchar
);
errno_t _wctomb_s_l(
   int *pRetValue,
   char *mbchar,
   size_t sizeInBytes,
   wchar_t wchar,
   _locale_t locale
);

매개 변수

pRetValue
결과를 나타내는 코드 또는 바이트 수입니다.

mbchar
멀티바이트 문자의 주소입니다.

sizeInBytes
mbchar 버퍼의 크기입니다.

wchar
변환할 와이드 문자입니다.

locale
사용할 로캘입니다.

반환 값

성공시 0, 실패시 오류 코드.

오류 조건

mbchar sizeInBytes 반환 값 pRetValue
NULL >0 EINVAL 수정 안 됨
any >INT_MAX EINVAL 수정 안 됨
any 너무 작음 EINVAL 수정 안 됨

위의 오류 조건이 발생하면 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용한 경우 wctombEINVAL를 반환하고 errnoEINVAL로 설정합니다.

반환 값 EILSEQ 은 매개 변수 wchar 를 통해 전달된 값이 유효한 와이드 문자가 아님을 나타냅니다.

설명

wctomb_s 함수는 wchar 인수를 해당 멀티바이트 문자로 변환하고 결과를 mbchar에 저장합니다. 모든 프로그램에서 언제든지 이 함수를 호출할 수 있습니다.

wctomb_s는 와이드 문자를 멀티바이트 문자로 변환하는 경우 와이드 문자의 바이트 수(항상 MB_CUR_MAX보다 크지 않음)를 pRetValue가 가리키는 정수에 추가합니다. wchar이 와이드 문자 null 문자(L'\0')이면 wctomb_spRetValue를 1로 채웁니다. 대상 포인터 mbchar 가 있으면 NULLwctomb_s 0을 입력합니다pRetValue. 현재 로캘 wctomb_s 에서 변환이 불가능한 경우 -1을 입력합니다 pRetValue.

wctomb_s는 로캘 종속 정보가 필요한 경우 현재 로캘을 사용합니다. _wctomb_s_l도 이와 동일하지만 전달된 로캘을 사용합니다. 자세한 내용은 Locale을 참조하세요.

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

요구 사항

루틴에서 반환된 값 필수 헤더
wctomb_s <stdlib.h>
_wctomb_s_l <stdlib.h>

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

예시

이 프로그램은 wctomb_s 함수의 동작을 보여 줍니다.

// crt_wctomb_s.cpp
#include <stdio.h>
#include <stdlib.h>

int main( void )
{
    int i;
    wchar_t wc = L'a';
    char *pmb = (char *)malloc( MB_CUR_MAX );

    printf_s( "Convert a wide character:\n" );
    wctomb_s( &i, pmb, MB_CUR_MAX, wc );
    printf_s( "   Characters converted: %u\n", i );
    printf_s( "   Multibyte character: %.1s\n\n", pmb );
}
Convert a wide character:
   Characters converted: 1
   Multibyte character: a

참고 항목

데이터 변환
Locale
_mbclen, , mblen_mblen_l
mbstowcs, _mbstowcs_l
mbtowc, _mbtowc_l
wcstombs, _wcstombs_l
WideCharToMultiByte