mbstate_t(3type)

BEZEICHNUNG
mbstate_t - Multibytezeichen-Umwandlungszustand

BIBLIOTHEK
Standard-C-Bibliothek (libc)

ÜBERSICHT
#include <wchar.h>

typedef /* … */  mbstate_t;

BESCHREIBUNG
Zeichenumwandlungen zwischen der Multibyte-Darstellung und der Weitzeichen-Darstellung verwenden einen Umwandlungszustand vom Typ mbstate_t. Die Umwandlung einer Zeichenkette verwendet einen endlichen Automaten: wenn er nach der Umwandlung einer Reihe von Zeichen unterbrochen wird, kann es notwendig sein, den Zustand für die Verarbeitung der verbleibenden Zeichen zu speichern. Eine solcher Umwandlungszustand wird wegen der Kodierungen wie ISO/IEC 2022 und UTF-7 benötigt.

Der anfängliche Zustand ist der Zustand am Anfang der Umwandlung einer Zeichenkette. Es gibt zwei Zustandsarten: die Art, die bei Multibyte-zu-Weitzeichen-Umwandlungsfunktionen wie mbsrtowcs(3) verwandt wird und die Art, die bei Weitzeichen-zu-Multibyte-Umwandlungsfunktionen wie wcsrtombs(3) verwandt wird. Sie passen aber beide in mbstate_t und sie haben beide die gleiche Darstellung des Anfangszustands.

Für 8-bit-Kodierungen sind alle Zustände zum Anfangszustand identisch. Für Multibytekodierungen wie UTF-8, EUC-*, BIG5 oder SJIS produziert die Weitzeichen-zu-Multibyte-Umwandlung niemals andere Zustände als den Anfangszustand, aber die Multibyte-zu-Weitzeichen-Umwandlungsfunktionen wie mbrtowc(3) produzieren andere Zustände, wenn sie mitten im Zeichen unterbrochen werden.

Eine Möglichkeit zur Erstellung des Anfangszustands von mbstate_t besteht darin, ihn auf Null zu setzen:

    mbstate_t state;
    memset(&state, 0, sizeof(state));

Unter Linux funktioniert auch Folgendes, kann aber zu Compiler-Warnungen führen:

    mbstate_t state = { 0 };

STANDARDS
C11, POSIX.1-2024.

GESCHICHTE
SUSv2, C99, POSIX.1-2001.

SIEHE AUCH
mbrlen(3), mbrtowc(3), mbsinit(3), mbsrtowcs(3), wcrtomb(3), wcsrtombs(3)

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.