wcrtomb_s

Geniş bir karakter, çok baytlı karakter gösterimine dönüştürün.Bir sürümü wcrtomb açıklandığı gibi güvenlik geliştirmeleri ile CRT'deki Güvenlik Özellikleri.

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

Parametreler

  • [Çıkış]pReturnValue
    Bir hata meydana gelmise yazılan bayt sayısı veya -1 döndürür.

  • [Çıkış]mbchar
    Sonuç çok baytlı karakter dönüştürülür.

  • [in]sizeOfmbchar
    Boyutunu mbchar bayt cinsinden değişken.

  • [in]wchar
    Dönüştürmek için geniş bir karakter.

  • [in]mbstate
    Bir işaretçi bir mbstate_t nesne.

Dönüş Değeri

Sıfır döndürür veya bir errno bir hata oluşursa değer.

Notlar

wcrtomb_s İşlevi dönüştürür içerdiği belirtilen dönüştürmeye durumunda başlayarak geniş bir karakter mbstate, bulunan değerden wchar, gösterdiği adres içine mbchar.pReturnValue Değer bayt dönüştürülür, ancak Hayır sayısı olacaktır birden MB_CUR_MAX bayt veya bir hata oluştuysa, bir -1.

mbstate Null, iç mbstate_t dönüştürme durumu kullanılır.Karakter içeriyorsa wchar bir karşılık gelen çok baytlı karakter değeri yok pReturnValue -1 olur ve işlevi döndürür errno değeri EILSEQ.

wcrtomb_s İşlevi farklı wctomb_s, _wctomb_s_l , restartability tarafından.Dönüştürme durumu depolanır mbstate aynı veya yeniden başlatılabilir diğer işlevler için sonraki aramalar için.Sonuçları yeniden başlatılabilir ve nonrestartable işlevlerinin kullanımı karıştırma tanımsız olur.Örneğin, bir uygulamayı kullanacağınız wcsrlen yerine wcslen, sonradan, wcsrtombs_s yerine kullanılanwcstombs_s.

C++'da, bu işlevi kullanarak şablon aşırı tarafından basitleştirilerek verilmiştir; aşırı arabellek uzunluğu otomatik olarak gerçekleştirip (size baðýmsýz deðiþkeni belirtmek gereğini ortadan kaldırır) ve bunlar otomatik olarak yeni, güvenli karşılıkları ile eski, güvenli olmayan işlevler değiştirebilirsiniz.Daha fazla bilgi için bkz. Güvenli Şablon Aşırı Yüklemeleri.

Özel Durumlar

wcrtomb_s İşlevi, geçerli iş parçacığında hiçbir işlevi çağıran sürece multithread güvenli olduğu setlocale bu işlevi yürütülürken ve mbstate null.

Örnek

// 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 Eşdeğeri

Yoktur. Standart c işlevi çağırmak için kullanmak PInvoke. Daha fazla bilgi için bkz: Platform Çağırma örnekleri.

Gereksinimler

Yordamı

Gerekli başlık

wcrtomb_s

<wchar.h>

Ayrıca bkz.

Başvuru

Veri Dönüştürme

Yerel Ayar

Çok Baytlı Karakter Sıralarının Yorumu

mbsinit