Aracılığıyla paylaş


wctomb_s, _wctomb_s_l

Geniş bir karakteri karşılık gelen çok baytlı karaktere dönüştürür. CRT'deki _wctomb_lwctombGüvenlik özellikleri bölümünde açıklandığı gibi güvenlik geliştirmeleri içeren sürümü.

Sözdizimi

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
);

Parametreler

pRetValue
Bayt sayısı veya sonucu gösteren bir kod.

mbchar
Çok baytlı bir karakterin adresi.

sizeInBytes
Arabelleğin mbcharboyutu.

wchar
Dönüştürülecek geniş karakter.

locale
Kullanılacak yerel ayar.

Dönüş değeri

Başarılı olursa sıfır, hata durumunda bir hata kodu.

Hata Koşulları

mbchar sizeInBytes Dönüş değeri pRetValue
NULL >0 EINVAL değiştirilmedi
herhangi bir >INT_MAX EINVAL değiştirilmedi
herhangi bir çok küçük EINVAL değiştirilmedi

Yukarıdaki hata koşullarından herhangi biri oluşursa, parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse, wctomb döndürür EINVAL ve olarak EINVALayarlanırerrno.

Dönüş değeri EILSEQ , parametresi wchar aracılığıyla geçirilen değerin geçerli bir geniş karakter olmadığını gösterir.

Açıklamalar

işlevi bağımsız wctomb_s değişkenini wchar karşılık gelen çok baytlı karaktere dönüştürür ve sonucu konumunda mbchardepolar. İşlevi herhangi bir programın herhangi bir noktasından çağırabilirsiniz.

Geniş karakteri çok baytlı bir karaktere dönüştürürse wctomb_s , geniş karakterdeki bayt sayısını (hiçbir zaman değerinden MB_CUR_MAXbüyük değildir) ile pRetValueişaret edilen tamsayıya yerleştirir. wchar Geniş karakterli null karakter ise (L'\0'), wctomb_s 1 ile doldurulurpRetValue. Hedef işaretçi mbchar ise, içine wctomb_s 0 eklerpRetValueNULL. Dönüştürme geçerli yerel ayarda mümkün değilse içine wctomb_s -1 ekler pRetValue.

wctomb_s yerel ayara bağımlı bilgiler için geçerli yerel ayarı kullanır; _wctomb_s_l , bunun yerine geçirilen yerel ayarı kullanması dışında aynıdır. Daha fazla bilgi için bkz . Yerel Ayar.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Gereksinimler

Yordam Gerekli başlık
wctomb_s <stdlib.h>
_wctomb_s_l <stdlib.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

Bu program işlevin wctomb_s davranışını gösterir.

// 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

Ayrıca bkz.

Veri dönüştürme
Yerel ayar
_mbclen, mblen, _mblen_l
mbstowcs, _mbstowcs_l
mbtowc, _mbtowc_l
wcstombs, _wcstombs_l
WideCharToMultiByte