Freigeben über


wctomb_s, _wctomb_s_l

Konvertiert ein Breitzeichen zum entsprechenden Mehrbytezeichen. Eine Version von wctomb, _wctomb_l mit werden, wie in Sicherheitsfunktionen in der CRT beschrieben.

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

Parameter

  • [out] pRetValue
    Die Anzahl der Bytes oder ein Code, der das Ergebnis angibt.

  • [out] mbchar
    Die Adresse eines Mehrbytezeichens.

  • [in] sizeInBytes
    Größe des Puffers mbchar.

  • [in] wchar
    Bei einem Breitzeichen.

  • [in] locale
    Das zu verwendende Gebietsschema.

Rückgabewert

Null, wenn erfolgreich, Fehlercode bei Fehler.

Fehlerbedingungen

mbchar

sizeInBytes

Rückgabewert

pRetValue

NULL

>0

EINVAL

nicht geändert

any

>INT_MAX

EINVAL

nicht geändert

any

zu klein

EINVAL

nicht geändert

Wenn eine der oben genannten Fehlerzustände, tritt der ungültige Parameterhandler wird aufgerufen, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt wctombEINVAL zurück und setzt errno auf EINVAL.

Hinweise

Die wctomb_s-Funktion konvertiert sein wchar-Argument zum entsprechenden Mehrbytezeichen und speichert das Ergebnis bei mbchar. Sie können die Funktion von einem beliebigen Punkt in jedes Programm aufrufen.

Wenn wctomb_s das Breitzeichen einem Mehrbytezeichen konvertiert, werden die Anzahl von Bytes (die nie größer als MB_CUR_MAX ist, in das Breitzeichen in die ganze Zahl ein, die auf den durch pRetValue gezeigt wird. Wenn wchar das NULL-Breitzeichen (L"\0") ist, wird wctomb_spRetValue mit 1. aus. Wenn der Zielzeiger mbchar NULL ist, gibt wctomb_s 0 in pRetValue ein. Wenn die Konvertierung nicht im aktuellen Gebietsschema möglich ist, wird wctomb_s - 1 in pRetValue.

wctomb_s verwendet das aktuelle Gebietsschema zu gebietsschemaabhängiger Informationen; _wctomb_s_l ist identisch, es verwendet das Gebietsschema, das ein- stattdessen übergeben wird. Weitere Informationen finden Sie unter Locale.

Anforderungen

Routine

Erforderlicher Header

wctomb_s

<stdlib.h>

_wctomb_s_l

<stdlib.h>

Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

Beispiel

Dieses Programm veranschaulicht das Verhalten der Funktion wctomb.

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

.NET Framework-Entsprechung

Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Datenkonvertierung

Locale

_mbclen, mblen, _mblen_l

mbstowcs, _mbstowcs_l

mbtowc, _mbtowc_l

wcstombs, _wcstombs_l

WideCharToMultiByte