wcsnrtombs(3)

BEZEICHNUNG
wcsnrtombs - Eine Zeichenkette weiter Zeichen in eine Multibyte-Zeichenkette umwandeln

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

ÜBERSICHT
#include <wchar.h>

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

    Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)):

wcsnrtombs():
    Seit Glibc 2.10:
        _POSIX_C_SOURCE >= 200809L
    Vor Glibc 2.10:
        _GNU_SOURCE

BESCHREIBUNG
Die Funktion wcsnrtombs() ist ähnlich der Funktion wcsrtombs(3), außer dass die Anzahl der umzuwandelnden weiten Zeichen, beginnend bei *Quelle, auf awz begrenzt ist.

Falls Ziel nicht NULL ist, wandelt die Funktion wcsnrtombs() höchstens awz weite Zeichen aus der Zeichenkette weiter Zeichen *Quelle in eine bei Ziel beginnende Multibyte-Sequenz um. Es werden höchstens zGröße byte nach Ziel geschrieben. Der Schiebezustand *ps wird aktualisiert. Die Umwandlung wird letztendlich durch wiederholten Aufruf von wcrtomb(Ziel, *Quelle, ps) durchgeführt, so lange dieser Aufruf erfolgreich ist und der Erhöhung von Ziel um die Anzahl der geschriebenen Byte und *Quelle um eins. Die Umwandlung kann aus drei Gründen stoppen:

•   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.

•   Es wurden awz weite Zeichen umgewandelt, ohne dass ein weites Nullzeichen (L'\0') angetroffen wurde oder die Größenbeschränkung erzwingt einen Stopp. In diesem Fall zeigt *Quelle weiterhin auf das nächste umzuwandelnde weite Zeichen und die Anzahl der nach Ziel geschriebenen Byte wird zurückgeliefert.

•   Die Zeichenkette weiter Zeichen wurde komplett umgewandelt, einschließlich des abschließenden weiten Null-Zeichens (dies hat den Seiteneffekt, dass *ps wieder in seinen ursprünglichen Zustand zurückkehrt). In diesem Fall wird *Quelle auf NULL gesetzt und die Anzahl der nach Ziel geschriebenen Byte, ohne das abschließende Null-Byte (»\0«), wird zurückgeliefert.

Falls Ziel NULL ist, dann wird zGröße ignoriert und die Umwandlung fährt wie oben fort, außer dass die umgewandelten Bytes nicht in den Speicher rausgeschrieben werden und dass keine Zielgrößenbeschränkung existiert.

Falls ps NULL ist, wird in beiden obigen Fällen ein statischer anonymer Zustand, den nur die Funktion wcsnrtombs() kennt, stattdessen verwandt.

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

RÜCKGABEWERT
Die Funktion wcsnrtombs() liefert die Anzahl an Byte, die den umgewandelten Anteil einer Multibyte-Sequenz darstellen, ohne das abschließende Null-Byte. Falls ein weites Zeichen angetroffen wurde, das nicht umgewandelt 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
wcsnrtombs() | Multithread-Fähigkeit | MT-Unsicher race:wcsnrtombs/!ps

STANDARDS
POSIX.1-2008.

ANMERKUNGEN
Das Verhalten von wcsnrtombs() 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), 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.