Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mbchar(3C) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chrtbl(1M)

mbstring(3C)

setlocale(3C)

environ(5)

stdlib(5)

wchar(5)

mbchar(3C)                                                       mbchar(3C)

NAME
     mbchar: mbtowc, mblen, wctomb, mbrlen, mbrtowc, wcrtomb - Mehrbytezei-
     chen umwandeln

SYNTAX
     #include <stdlib.h>
     #include <wchar.h>

     int mbtowc(wchart *pwc, const char *s, sizet n);

     int mblen(const char *s, sizet n);

     int wctomb(char *s, wchart wchar);

     sizet mbrlen(const char *s, sizet n, mbstatet *ps);

     sizet mbrtowc(wchart *pwc, const char *s, sizet n, mbstatet *ps);

     sizet wcrtomb(char *s, wchart wc, mbstatet *ps);

BESCHREIBUNG
     Mehrbytezeichen werden verwendet, um Zeichen in einem erweiterten Zei-
     chensatz darzustellen. Dies wird für internationale Umgebungen benö-
     tigt, in denen 8 Bits zur Darstellung aller Zeichen im Zeichensatz
     nicht ausreichen.

     Mit diesen Funktionen können Mehrbytezeichen in Wide-Characters über-
     setzt werden und umgekehrt. Wide-Characters sind vom Typ wchart
     (definiert in stdlib.h); hierbei handelt es sich um einen ganzzahligen
     Typ, dessen Wertebereich alle Komponenten des größten erweiterten Zei-
     chensatzes aus den unterstützten internationalen Umgebungen darstellen
     kann.

     Für jede internationale Umgebung werden maximal drei erweiterte Zei-
     chensätze unterstützt. Die Anzahl der Bytes in einem erweiterten Zei-
     chensatz wird durch die Kategorie LCCTYPE der Umgebung definiert
     [siehe setlocale(3C)]. Die maximale Anzahl von Bytes, die zur Darstel-
     lung eines Mehrbytezeichens verwendet werden kann, ist nie größer als
     MBLENMAX, einer in limits.h definierten Konstanten. Die maximale
     Anzahl von Bytes für ein Zeichen des erweiterten Zeichensatzes in der
     aktuellen Umgebung wird durch das Makro MBCURMAX festgelegt, das in
     stdlib.h definiert ist.

     mbtowc() bestimmt die Anzahl der Bytes, die das Mehrbytezeichen ent-
     hält, auf das s zeigt. Wenn pwc kein Nullzeiger ist, wandelt mbtowc()
     das Mehrbytezeichen in ein Wide-Character um und schreibt das Ergebnis
     in das Objekt, auf das pwc zeigt. Der Wert des Wide-Characters für das
     Nullzeichen ist Null. Bis zu n Zeichen werden geprüft, angefangen mit
     dem Zeichen, auf das s zeigt.






Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

mbchar(3C)                                                       mbchar(3C)

     Wenn s ein Nullzeiger ist, gibt mbtowc() 0 zurück. Wenn s kein Null-
     zeiger ist, aber auf das Nullzeichen zeigt, gibt mbtowc() 0 zurück;
     wenn die nächsten n oder weniger Bytes ein gültiges Mehrbytezeichen
     darstellen, gibt mbtowc() die Anzahl der Bytes zurück, die das umge-
     wandelte Mehrbytezeichen belegt; andernfalls zeigt s nicht auf ein
     gültiges Mehrbytezeichen, und mbtowc() gibt -1 zurück.

     mblen() bestimmt die Anzahl der Bytes in dem Mehrbytezeichen, auf das
     s zeigt. Diese Funktion entspricht folgendem Aufruf:

          mbtowc((wchart *)0, s, n);

     wctomb() bestimmt die Anzahl der Bytes, die zur Darstellung des Mehr-
     bytezeichens mit dem Code wchar benötigt werden. Wenn s kein Nullzei-
     ger ist, wird die Mehrbytezeichendarstellung in dem Array gespeichert,
     auf den s zeigt. Maximal MBCURMAX Zeichen werden gespeichert.

     Wenn s ein Nullzeiger ist, gibt wctomb() 0 zurück. Ist s kein Nullzei-
     ger, gibt wctomb() -1 zurück, wenn der Wert von wchar keinem gültigen
     Mehrbytezeichen entspricht; andernfalls wird die Anzahl der Bytes
     zurückgegeben, die das Mehrbytezeichen mit dem Code wchar belegt.

   Erneut startbare Umwandlungsfunktionen für Mehrbyte-/Wide-Characters

     Diese Funktionen unterscheiden sich von den entsprechenden Mehrbyte-
     zeichenfunktionen mblen(), mbtowc() und wctomb() dahingehend, daß sie
     einen zusätzlichen Parameter ps haben, der ein Zeiger auf mbstatet
     ist und auf ein Objekt zeigt, das den aktuellen Umwandlungsstatus der
     entsprechenden Mehrbytezeichenfolge vollständig beschreiben kann. Wenn
     ps ein Nullzeiger ist, verwendet jede Funktion ihr eigenes, internes
     mbstatet-Objekt, das beim Programmstart mit dem Anfangsumwandlungs-
     status initialisiert wird. Die Implementierung verhält sich dabei so,
     als würde keine Bibliotheksfunktion diese Funktionen mit einem Null-
     zeiger für ps aufrufen.

     Die Funktion mbrlen() entspricht folgendem Aufruf:

          mbrtowc(NULL, s, n, ps != NULL ? ps : &internal)

     Hierbei ist internal das Objekt mbstatet für die Funktion mbrlen().

     Die Funktion mbrlen() gibt (sizet)-2, (sizet)-1 zurück, das heißt,
     einen Wert zwischen Null und n einschließlich.

     Wenn s ein Nullzeiger ist, entspricht die Funktion mbrtowc() folgendem
     Aufruf:

          mbrtowc(NULL, "", l, ps)

     In diesem Fall werden die Werte der Parameter pwc und n ignoriert.




Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

mbchar(3C)                                                       mbchar(3C)

     Wenn s ein Nullzeiger ist, entspricht die Funktion wcrtomb() folgendem
     Aufruf:

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

     Hierbei ist buf ein interner Puffer.

SIEHE AUCH
     chrtbl(1M), mbstring(3C), setlocale(3C), environ(5), stdlib(5),
     wchar(5).












































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026