wctomb_s
, _wctomb_s_l
Geniş bir karakteri karşılık gelen çok baytlı karaktere dönüştürür. CRT'deki _wctomb_l
wctomb
Gü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 mbchar
boyutu.
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 EINVAL
ayarlanı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 mbchar
depolar. İş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_MAX
büyük değildir) ile pRetValue
iş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 eklerpRetValue
NULL
. 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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin