Share via


wcstombs, _wcstombs_l

와이드 문자 시퀀스에 해당 시퀀스의 멀티 바이트 문자로 변환합니다.이러한 함수를 더 안전한 버전을 사용할 수 있습니다. see wcstombs_s, _wcstombs_s_l.

size_t wcstombs(
   char *mbstr,
   const wchar_t *wcstr,
   size_t count 
);
size_t _wcstombs_l(
   char *mbstr,
   const wchar_t *wcstr,
   size_t count,
   _locale_t locale
);
template <size_t size>
size_t wcstombs(
   char (&mbstr)[size],
   const wchar_t *wcstr,
   size_t count 
); // C++ only
template <size_t size>
size_t _wcstombs_l(
   char (&mbstr)[size],
   const wchar_t *wcstr,
   size_t count,
   _locale_t locale
); // C++ only

매개 변수

  • mbstr
    멀티 바이트 문자열의 주소입니다.

  • wcstr
    주소 너비 문자 시퀀스입니다.

  • count
    최대 출력 멀티 바이트 문자열에 저장할 수 있는 바이트 수입니다.

  • locale
    사용 하는 로캘.

반환 값

경우 wcstombs 멀티 바이트 문자열을 성공적으로 변환 종료를 제외 하 고는 멀티 바이트 출력 문자열에 작성 된 바이트 수를 반환 NULL (있는 경우).경우는 mbstr 인수는 NULL, wcstombs 대상 문자열의 바이트 수에서 필요한 크기를 반환 합니다.경우 wcstombs 와이드 문자는 멀티 바이트 문자를 변환할 수 없습니다. 발생 한 형식으로 캐스팅 하는 – 1을 반환 size_t 를 설정 하 고 errno 에 EILSEQ.

설명

wcstombs 함수 포인터가 가리키는 와이드 문자열 변환 wcstr 에 해당 멀티 바이트 문자 및 결과의 저장은 mbstr 배열.count 매개 변수는 최대 출력 멀티 바이트 문자열에 저장할 수 있는 바이트 수를 나타냅니다 (즉, 크기를 mbstr).일반적으로 와이드 문자열을 변환할 때 바이트 수 필요할 수 있습니다 알 수 없습니다.일부 와이드 문자 출력 문자열에서 1 바이트 필요 합니다. 다른 사용자가 두 개 필요합니다.모든 입력된 문자열에서 넓은 문자를 멀티 바이트 출력 문자열에 있는 경우 두 개의 바이트 (와이드 문자를 포함 하 여 NULL), 결과 맞게 보장 됩니다.

경우 wcstombs 와이드 문자 null 문자 ('\ 0' L) 하기 전 또는 때 발견 한 count 발생 하면 해당 파일을 변환 하면 8 비트 0 다음 중지 합니다.멀티 바이트 문자 문자열에 따라서 mbstr 경우에 null로 끝나는 wcstombs 와이드 문자 null 문자를 변환 하는 동안 발생 합니다.시퀀스 가리키는 경우 wcstr 및 mbstr 겹치는 동작을 wcstombs 는 정의 되지 않습니다.

경우는 mbstr 인수는 NULL, wcstombs 대상 문자열의 바이트 수에서 필요한 크기를 반환 합니다.

wcstombs매개 변수의 유효성을 검사 합니다.경우 wcstr 입니다 NULL, 또는 count 보다 큰INT_MAX, 잘못 된 매개 변수 처리기의 설명에 따라이 함수를 호출 매개 변수 유효성 검사 .함수 실행을 계속 수 있으면 설정 errno 에 EINVAL 및-1을 반환 합니다.

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

C + +에서이 함수는 최신, 보안 상응 하는 이러한 함수를 호출 하는 템플릿 오버 로드 되어 있습니다.자세한 내용은 보안 템플릿 오버 로드를 참조하십시오.

요구 사항

루틴

필수 헤더

wcstombs

<stdlib.h>

_wcstombs_l

<stdlib.h>

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

예제

이 프로그램의 동작을 보여 줍니다 있는 wcstombs 함수입니다.

// crt_wcstombs.c
// compile with: /W3
// This example demonstrates the use
// of wcstombs, which converts a string
// of wide characters to a string of 
// multibyte characters.

#include <stdlib.h>
#include <stdio.h>

#define BUFFER_SIZE 100

int main( void )
{
    size_t  count;
    char    *pMBBuffer = (char *)malloc( BUFFER_SIZE );
    wchar_t *pWCBuffer = L"Hello, world.";

    printf("Convert wide-character string:\n" );

    count = wcstombs(pMBBuffer, pWCBuffer, BUFFER_SIZE ); // C4996
    // Note: wcstombs is deprecated; consider using wcstombs_s instead
    printf("   Characters converted: %u\n",
            count );
    printf("    Multibyte character: %s\n\n",
           pMBBuffer );

    free(pMBBuffer);
}
  

해당 .NET Framework 항목

해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제.

참고 항목

참조

데이터 변환

로캘

_mbclen, mblen, _mblen_l

mbstowcs, _mbstowcs_l

mbtowc, _mbtowc_l

wctomb, _wctomb_l

WideCharToMultiByte