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.