Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Konvertiert ein Breitzeichen in das entsprechende Multibytezeichen. Eine Version von wctomb, _wctomb_l mit Sicherheitsverbesserungen, wie in den Sicherheitsfeatures in der CRT beschrieben.
Syntax
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
pRetValue
Die Anzahl von Bytes oder ein Code, der das Ergebnis angibt.
mbchar
Die Adresse eines Multibytezeichens.
sizeInBytes
Größe des mbchar-Puffers.
wchar
Das breite Zeichen, das konvertiert werden soll.
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 Fehlerbedingungen auftritt, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt wctombEINVAL zurück und setzt errno auf EINVAL.
Der Rückgabewert EILSEQ gibt an, dass der über den Parameter wchar übergebene Wert kein gültiges breites Zeichen ist.
Hinweise
Die wctomb_s-Funktion konvertiert das wchar-Argument in das entsprechende Multibytezeichen und speichert das Ergebnis in mbchar. Sie können die Funktion von einem beliebigen Punkt in einem beliebigen Programm aufrufen.
Wenn wctomb_s das Breitzeichen in ein Multibytezeichen konvertiert, wird die Anzahl von Bytes (die nie größer als MB_CUR_MAX ist) im Breitzeichen in den Integer geschrieben, auf den von pRetValue gezeigt wird. Wenn wchar das Breitzeichen NULL (L'\0') ist, füllt wctomb_spRetValue mit 1. Wenn der Zielzeiger mbchar ist NULL, wctomb_s wird 0 in pRetValue. Wenn die Konvertierung im aktuellen Gebietsschema nicht möglich ist, wctomb_s wird -1 in pRetValue.
wctomb_s verwendet das aktuelle Gebietsschema für jedes Verhalten, das vom Gebietsschema abhängig ist; _wctomb_s_l ist identisch, nur dass sie stattdessen das übergebene Gebietsschema verwendet. Weitere Informationen finden Sie unter Locale.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Anforderungen
| Routine | Erforderlicher Header |
|---|---|
wctomb_s |
<stdlib.h> |
_wctomb_s_l |
<stdlib.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
Dieses Programm stellt das Verhalten der Funktion wctomb_s dar.
// 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
Siehe auch
Datenkonvertierung
Gebietsschema
_mbclen, mblen_mblen_l
mbstowcs, _mbstowcs_l
mbtowc, _mbtowc_l
wcstombs, _wcstombs_l
WideCharToMultiByte