wcsnrtombs(3) Library Functions Manual wcsnrtombs(3) BEZEICHNUNG wcsnrtombs - Eine Zeichenkette weiter Zeichen in eine Multibyte-Zeichenkette umwandeln BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include size_t wcsnrtombs(char Ziel[restrict .Grosse], const wchar_t **restrict Quelle, size_t awz, size_t Grosse, 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 ahnlich der Funktion wcsrtombs(3), ausser dass die Anzahl der umzuwandelnden weiten Zeichen, beginnend bei *Quelle, auf awz begrenzt ist. Falls Ziel nicht NULL ist, wandelt die Funktion wcsnrtombs() hochstens awz weite Zeichen aus der Zeichenkette weiter Zeichen *Quelle in eine bei Ziel beginnende Multibyte-Sequenz um. Es werden hochstens Grosse byte nach Ziel geschrieben. Der Schiebezustand *ps wird aktualisiert. Die Umwandlung wird letztendlich durch wiederholten Aufruf von wcrtomb(Ziel, *Quelle, ps) durchgefuhrt, so lange dieser Aufruf erfolgreich ist und der Erhohung von Ziel um die Anzahl der geschriebenen Byte und *Quelle um eins. Die Umwandlung kann aus drei Grunden stoppen: o Es wurde ein weites Zeichen angetroffen, das (gemass der aktuellen Locale) nicht als Multibyte-Sequenz dargestellt werden kann. In diesem Fall verbleibt *Quelle auf das ungultige Zeichen zeigend, (size_t) -1 wird zuruckgeliefert und errno wird auf EILSEQ gesetzt. o Es wurden awz weite Zeichen umgewandelt, ohne dass ein weites Nullzeichen (L'\0') angetroffen wurde oder die Grossenbeschrankung erzwingt einen Stopp. In diesem Fall zeigt *Quelle weiterhin auf das nachste umzuwandelnde weite Zeichen und die Anzahl der nach Ziel geschriebenen Byte wird zuruckgeliefert. o Die Zeichenkette weiter Zeichen wurde komplett umgewandelt, einschliesslich des abschliessenden weiten Null-Zeichens (dies hat den Seiteneffekt, dass *ps wieder in seinen ursprunglichen Zustand zuruckkehrt). In diesem Fall wird *Quelle auf NULL gesetzt und die Anzahl der nach Ziel geschriebenen Byte, ohne das abschliessende Null-Byte (>>\0<<), wird zuruckgeliefert. Falls Ziel NULL ist, dann wird Grosse ignoriert und die Umwandlung fahrt wie oben fort, ausser dass die umgewandelten Bytes nicht in den Speicher rausgeschrieben werden und dass keine Zielgrossenbeschrankung existiert. Falls ps NULL ist, wird in beiden obigen Fallen ein statischer anonymer Zustand, den nur die Funktion wcsnrtombs() kennt, stattdessen verwandt. Der Programmierer muss sicherstellen, dass es Raum fur mindestens Grosse Byte bei Ziel gibt. RUCKGABEWERT Die Funktion wcsnrtombs() liefert die Anzahl an Byte, die den umgewandelten Anteil einer Multibyte-Sequenz darstellen, ohne das abschliessende Null-Byte. Falls ein weites Zeichen angetroffen wurde, das nicht umgewandelt werden konnte, wird (size_t) -1 zuruckgeliefert und errno auf EILSEQ gesetzt. ATTRIBUTE Siehe attributes(7) fur eine Erlauterung der in diesem Abschnitt verwandten Ausdrucke. +--------------+-------------------------+-----------------------------+ |Schnittstelle | Attribut | Wert | +--------------+-------------------------+-----------------------------+ |wcsnrtombs() | Multithread-Fahigkeit | MT-Unsicher | | | | race:wcsnrtombs/!ps | +--------------+-------------------------+-----------------------------+ STANDARDS POSIX.1-2008. ANMERKUNGEN Das Verhalten von wcsnrtombs() hangt von der Kategorie LC_CTYPE der aktuellen Locale ab. Die Ubergabe von NULL als ps ist nicht Multithread-sicher. SIEHE AUCH iconv(3), mbsinit(3), wcsrtombs(3) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.12 17. November 2024 wcsnrtombs(3)