mbstring(3C) mbstring(3C)
NAME
mbstring: mbstowcs, wcstombs, mbsrtowcs, wcsrtombs - Funktionen für
Mehrbyte-Strings
SYNTAX
#include <stdlib.h>
#include <wchar.h>
sizet mbstowcs(wchart *pwcs, const char *s, sizet n);
sizet wcstombs(char *s, const wchart *pwcs, sizet n);
sizet mbsrtowcs(wchart *dst, const char **src, sizet len,
mbstatet *ps);
sizet wcsrtombs(char *dst, const wchart **src, sizet len,
mbstatet *ps);
BESCHREIBUNG
mbstowcs() wandelt eine Folge von Mehrbytezeichen aus dem Array, auf
den s zeigt, in eine Folge von entsprechenden Wide-Character-Codes um
und speichert diese in dem Array, auf den pwcs zeigt. Nachdem n Zei-
chen gespeichert wurden oder ein Zeichen mit dem Wert Null (ein umge-
wandeltes Nullzeichen) aufgetreten ist, wird die Ausführung angehal-
ten. Wenn ein ungültiges Mehrbytezeichen auftritt, gibt mbstowcs() den
Wert (sizet)-1 zurück. Andernfalls gibt mbstowcs() die Anzahl der
geänderten Array-Elemente ohne das abschließende Nullzeichen (falls
vorhanden) zurück.
wcstombs() wandelt eine Folge von Wide-Character-Codes aus dem Array,
auf den pwcs zeigt, in eine Folge von Mehrbytezeichen um und speichert
diese Mehrbytezeichen in dem Array, auf den s zeigt. Nachdem n Mehrby-
tezeichen verarbeitet wurden, oder ein Nullzeichen aufgetreten ist,
wird die Ausführung angehalten. Wenn ein Wide-Character auftritt, das
keinem gültigen Mehrbytezeichen entspricht, gibt wcstombs() den Wert
(sizet)-1 zurück. Andernfalls gibt wcstombs() die Anzahl der geänder-
ten Bytes ohne das abschließende Nullzeichen (falls vorhanden) zurück.
Die Funktion mbsrtowcs() wandelt eine Folge von Mehrbytezeichen aus
dem Array, auf den src indirekt zeigt, in eine Folge von entsprechen-
den Wide-Characters um; hierbei wird in dem Umwandlungsstatus begon-
nen, der durch das Objekt beschrieben wird, auf das ps zeigt. Wenn dst
kein Nullzeiger ist, werden die umgewandelten Zeichen nicht in dem
Array gespeichert, auf den dst zeigt. Die Umwandlung wird bis zu einem
abschließenden Nullzeichen einschließlich fortgesetzt; das Nullzeichen
wird auch gespeichert. In folgenden beiden Fällen wird die Umwandlung
vorzeitig gestoppt: Wenn eine Folge von Bytes auftritt, die kein gül-
tiges Mehrbytezeichen bilden oder (vorausgesetzt dst ist kein Nullzei-
ger) wenn len Codes in dem Array gespeichert wurden, auf den dst
zeigt. Der Wert von len wird ignoriert, wenn dst ein Nullzeiger ist.
Jede Umwandlung wird wie bei einem Aufruf der Funktion mbrtowc() aus-
geführt.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
mbstring(3C) mbstring(3C)
Wenn dst kein Nullzeiger ist, wird dem Zeigerobjekt, auf das src
zeigt, entweder ein Nullzeiger (wenn die Umwandlung aufgrund eines
abschließenden Nullzeichens beendet wurde) oder die Adresse direkt
nach dem zuletzt umgewandelten Mehrbytezeichen (falls vorhanden)
zugeordnet. Wurde die Umwandlung aufgrund eines abschließenden Null-
zeichens beendet und ist dst kein Nullzeiger, ist der beschriebene
Status der Anfangsumwandlungsstatus.
Die Funktion wcsrtombs() wandelt eine Folge von Wide-Characters aus
dem Array, auf den src indirekt zeigt, in eine Folge von entsprechen-
den Mehrbytezeichen um; hierbei wird in dem Umwandlungsstatus begon-
nen, der durch das Objekt beschrieben wird, auf das ps zeigt. Wenn dst
kein Nullzeiger ist, werden die umgewandelten Zeichen anschließend in
dem Array gespeichert, auf den dst zeigt. Die Umwandlung wird bis zu
einem abschließenden Nullzeichen einschließlich fortgesetzt; das Null-
zeichen wird auch gespeichert. In folgenden beiden Fällen wird die
Umwandlung vorzeitig gestoppt: Wenn ein Code auftritt, der keinem gül-
tigen Mehrbytezeichen entspricht oder (vorausgesetzt dst ist kein
Nullzeiger) wenn das nächste Mehrbytezeichen, das in dem Array, auf
den dst zeigt, gespeichert werden soll, den Grenzwert von insgesamt
len Bytes überschreiten würde. Jede Umwandlung wird wie bei einem Auf-
ruf der Funktion wscrtombs() ausgeführt. Wenn die Umwandlung aufgrund
eines abschließenden Nullzeichens beendet wird, werden auch die Bytes
gespeichert, die für den Anfangsumwandlungsstatus direkt vor dem Null-
byte erforderlich sind.
Wenn dst kein Nullzeiger ist, wird dem Zeigerobjekt, auf das src
zeigt, entweder ein Nullzeiger (wenn die Umwandlung aufgrund eines
abschließenden Null-Wide-Characters beendet wurde) oder die Adresse
direkt nach dem zuletzt umgewandelten Wide-Character (falls vorhanden)
zugeordnet. Wurde die Umwandlung aufgrund eines abschließenden Null-
Wide-Characters beendet, ist der beschriebene Status der Anfangsum-
wandlungsstatus.
SIEHE AUCH
chrtbl(1M), mbchar(3C), setlocale(3C), environ(5), stdlib(5),
wchar(5).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98