wcrtomb(3)

BEZEICHNUNG
wcrtomb - Ein weites Zeichen in eine Multibyte-Sequenz umwandeln

BIBLIOTHEK
Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT
#include <wchar.h>

size_t wcrtomb(char *restrict z, wchar_t wz, mbstate_t *restrict ps);

BESCHREIBUNG
Der Haupteinsatzfall für diese Funktion liegt vor, wenn z nicht NULL ist und wz kein weites Null-Zeichen ist (L'\0'). In diesem Fall wandelt die Funktion wcrtomb() das weite Zeichen wz in seine Multibyte-Darstellung um und speichert sie am Anfang des Zeichenfeldes, auf das z zeigt. Es aktualisiert den Schiebezustand *ps und liefert die Länge der besagten Multibyte-Darstellung zurück, das bedeutet, die an z geschriebene Anzahl an Bytes.

Ein anderer Fall liegt vor, wenn z nicht NULL ist aber wz ein weites Null-Zeichen ist (L'\0'). In diesem Fall speichert die Funktion wcrtomb() die Schiebesequenz, die benötigt wird, um *ps in seinen anfänglichen Zustand im Zeichenfeld zurückzubringen, auf das z zeigt, gefolgt von einem »\0«-Byte. Es aktualisiert den Schiebezustand (d.h. bringt ihn in den anfänglichen Zustand) und liefert die Länge der Schiebesequenz plus eins zurück, das bedeutet, die an z geschriebene Anzahl an Bytes.

Ein dritter Fall ist, wenn z NULL ist. In diesem Fall wird wz ignoriert und die Funktion liefert letztendlich

    wcrtomb(buf, L'\0', ps)

zurück, wobei buf ein interner anonymer Puffer ist.

Falls ps NULL ist wird stattdessen in allen obigen Fällen ein statischer, anonymer Zustand, der nur der Funktion wcrtomb() bekannt ist, verwandt.

RÜCKGABEWERT
Die Funktion wcrtomb() liefert die Anzahl der Byte zurück, die in das Byte-Feld unter z geschrieben worden oder worden wären. Falls wz nicht als Multibyte-Sequenz dargestellt werden kann (entsprechend der aktuellen Locale), dann wird (size_t) -1 zurückgeliefert und errno auf EILSEQ gesetzt.

ATTRIBUTE
Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
Schnittstelle | Attribut | Wert
wcrtomb() | Multithread-Fähigkeit | MT-Unsicher race:wcrtomb/!ps

STANDARDS
C11, POSIX.1-2008.

GESCHICHTE
POSIX.1-2001, C99.

ANMERKUNGEN
Das Verhalten von wcrtomb() hängt von der Kategorie LC_CTYPE der aktuellen Locale ab.

Die Übergabe von NULL als ps ist nicht Multithread-sicher.

SIEHE AUCH
mbsinit(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).