wcrtomb_s
와이드 문자는 멀티 바이트 문자 표현으로 변환 합니다.버전 wcrtomb 와 보안 기능 향상에 설명 된 대로 CRT의 보안 기능.
errno_t wcrtomb_s(
size_t *pReturnValue,
char *mbchar,
size_t sizeOfmbchar,
wchar_t *wchar,
mbstate_t *mbstate
);
template <size_t size>
errno_t wcrtomb_s(
size_t *pReturnValue,
char (&mbchar)[size],
wchar_t *wchar,
mbstate_t *mbstate
); // C++ only
매개 변수
[out] pReturnValue
오류가 발생 한 경우 작성 된 바이트 수 또는-1을 반환 합니다.[out] mbchar
결과 멀티 바이트 문자를 변환 합니다.[in] sizeOfmbchar
크기는 mbchar 변수 (바이트)에서입니다.[in] wchar
변환 와이드 문자입니다.[in] mbstate
에 대 한 포인터를 mbstate_t 개체입니다.
반환 값
0이 반환 나는 errno 에 오류가 발생 하면 값입니다.
설명
wcrtomb_s 함수 변환에 포함 된 지정 된 변환 상태에서부터 와이드 mbstate, 포함 된 값을 wchar, 표시 된 주소에 mbchar.pReturnValue 바이트 변환, 하지만 no의 수는 값은 두 개 이상의 MB_CUR_MAX 바이트 또는 오류가 발생 한 경우에-1입니다.
경우 mbstate null이 내부 mbstate_t 상태 변환이 사용 됩니다.문자가 포함 된 경우 wchar 해당 멀티 바이트 문자 값을 포함 하지 않은 pReturnValue -1 서 함수 반환 합니다는 errno 값이 EILSEQ.
wcrtomb_s 다른 함수에서 wctomb_s, _wctomb_s_l 를 재시작 하면 됩니다.변환 상태 저장 됩니다 mbstate 같은 또는 다른 다시 시작 함수 호출에 대 한.혼합 가지가 함수를 사용 하는 경우 결과가 정의 되지 않습니다.예를 들어, 응용 프로그램 사용 wcsrlen 대신 wcslen에 대 한 이후의 호출 하는 경우, wcsrtombs_s 대신 사용 된wcstombs_s.
C + +에서이 함수를 사용 하 여 템플릿 오버 로드에 의해 단순화 됩니다. 오버 로드에서 버퍼 길이가 자동으로 유추할 수 있습니다 (size 인수를 지정할 필요가 없습니다) 및 해당 보안에서 이미지와 이전, 안전 하지 않은 함수가 자동으로 바꿀 수 있습니다.자세한 내용은 보안 템플릿 오버 로드를 참조하십시오.
예외
wcrtomb_s 함수는 다중 스레드 안전 수 없습니다 현재 스레드에서 함수를 호출 하는 경우 setlocale 이 함수를 실행 하는 동안 하는 mbstate null입니다.
예제
// crt_wcrtomb_s.c
// This program converts a wide character
// to its corresponding multibyte character.
//
#include <string.h>
#include <stdio.h>
#include <wchar.h>
int main( void )
{
errno_t returnValue;
size_t pReturnValue;
mbstate_t mbstate;
size_t sizeOfmbStr = 1;
char mbchar = 0;
wchar_t* wchar = L"Q\0";
// Reset to initial conversion state
memset(&mbstate, 0, sizeof(mbstate));
returnValue = wcrtomb_s(&pReturnValue, &mbchar, sizeof(char),
*wchar, &mbstate);
if (returnValue == 0) {
printf("The corresponding wide character \"");
wprintf(L"%s\"", wchar);
printf(" was converted to a the \"%c\" ", mbchar);
printf("multibyte character.\n");
}
else
{
printf("No corresponding multibyte character "
"was found.\n");
}
}
해당 .NET Framework 항목
해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제.
요구 사항
루틴 |
필수 헤더 |
---|---|
wcrtomb_s |
<wchar.h> |