wcsrtombs(3)

BEZEICHNUNG
wcsrtombs - eine Zeichenkette weiter Zeichen in eine Multibyte-Zeichenkette umwandeln

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

ÜBERSICHT
#include <wchar.h>

size_t wcsrtombs(size_t zGröße;
                 char Ziel[restrict zGröße],
                 const wchar_t **restrict Quelle,
                 size_t zGröße, mbstate_t *restrict ps);

BESCHREIBUNG
Falls Ziel nicht NULL ist, konvertiert die Funktion wcsrtombs() die Zeichenkette weiter Zeichen *Quelle in eine bei Ziel beginnende Multibytezeichenkette. Es werden höchstens zGröße byte nach Ziel geschrieben. Der Schiebe-Zustand *ps wird aktualisiert. Die Umwandlung wird letztendlich durch wiederholten Aufruf von wcrtomb(Ziel, *Quelle, ps) durchgeführt, solange dieser Aufruf erfolgreich ist und dann wird Ziel um die Anzahl der geschriebenen Byte und *Quelle um eins erhöht. Die Umwandlung kann aus drei Gründen beendet werden:

•   Es wurde ein weites Zeichen angetroffen, das (gemäß der aktuellen Locale) nicht als Multibyte-Sequenz dargestellt werden kann. In diesem Fall verbleibt *Quelle auf das ungültige Zeichen zeigend, (size_t) -1 wird zurückgeliefert und errno wird auf EILSEQ gesetzt.

•   Die Größenbegrenzung erzwingt einen Stopp. In diesem Fall verbleibt *Quelle auf das nächste umzuwandelnde Zeichen zeigend und die Anzahl nach Ziel geschriebenen Bytes wird zurückgeliefert.

•   Die Zeichenkette weiter Zeichen wurde komplett umgewandelt, einschließlich des abschließenden weiten Nullzeichens (L'\0'). Dies hat den Seiteneffekt, dass es *ps wieder auf den Anfangszustand zurückbringt. In diesem Fall wird *Quelle auf NULL gesetzt und die Anzahl der nach Ziel geschriebenen Bytes, auschließlich des abschließenden weiten Nullzeichens (L'\0') wird zurückgeliefert.

Falls Ziel NULL ist, wird zGröße ignoriert und die Umwandlung wird wie oben beschrieben fortgeführt, außer dass die umgewandelten Bytes nicht in den Speicher ausgegeben werden und dass keine Größenbeschränkung existiert.

In beiden obigen Fällen, falls ps NULL ist, wird stattdessen ein anonymer, nur der Funktion wcsrtombs() bekannter Zustand verwandt.

Der Programmierer muss sicherstellen, dass es Raum für mindestens zGröße Byte bei Ziel gibt.

RÜCKGABEWERT
Die Funktion wcsrtombs() liefert die Anzahl der Byte zurück, aus denen der konvertierte Anteil der Multibyte-Sequenz besteht, ohne das abschließende Nullbyte. Falls ein weites Zeichen angetroffen wurde, das nicht konvertiert werden konnte, 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
wcsrtombs() | Multithread-Fähigkeit | MT-Unsicher race:wcsrtombs/!ps

STANDARDS
C11, POSIX.1-2008.

GESCHICHTE
POSIX.1-2001, C99.

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

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

SIEHE AUCH
iconv(3), mbsinit(3), wcrtomb(3), wcsnrtombs(3), wcstombs(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.