Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ wcstod(3C) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

iswspace(3C)

localeconv(3C)

setlocale(3C)

wcstol(3C)

scanf(3S)

wchar(5)

wcstod(3C)                                                       wcstod(3C)

NAME
     wcstod - Wide-Character-Zeichenkette umwandeln

SYNTAX
     #include <wchar.h>

     double wcstod(const wchart *nptr, wchart **endptr);

BESCHREIBUNG
     Die Funktion wcstod() wandelt den ersten Teil der Zeichenkette aus
     Wide-Character-Werten, auf die nptr zeigt, in eine Darstellung mit
     doppelter Genauigkeit um. Zuerst zerlegt sie die Eingabe-Zeichenkette
     aus Wide-Character-Werten in drei Teile: eine, möglicherweise leere,
     Folge von Zwischenraumzeichen als Wide-Character-Werte (entsprechend
     der Angabe durch die Funktion iswspace()) am Anfang, eine Folge, die
     als Gleitpunktkonstante interpretiert wird, und schließlich eine Zei-
     chenkette aus Wide-Character-Werten mit einem oder mehr nicht erkann-
     ten Wide-Character-Werten, einschließlich abschließendem Nullbyte der
     Eingabe-Zeichenkette aus Wide-Character-Werten. Dann wird versucht,
     die mittlere Folge in eine Gleitpunktzahl umzuwandeln. Anschließend
     wird das Ergebnis zurückgegeben.

     Es wird erwartet, daß diese mittlere Folge folgendes Format hat: das
     Vorzeichen + oder - (optional), eine nichtleere Folge von Ziffern, die
     optional ein Dezimalzeichen enthalten kann, und schließlich ein optio-
     naler Exponententeil. Ein Exponententeil besteht aus dem Zeichen e
     bzw. E, gefolgt von einem Vorzeichen (optional) und einer oder mehr
     dezimalen Ziffern. Diese mittlere Folge ist als die längste Teilfolge
     der Eingabe-Zeichenkette aus Wide-Character-Werten definiert. Sie
     beginnt mit dem ersten Wide-Character-Wert, der kein Zwischenraumzei-
     chen ist und das erwartete Format aufweist. Diese Folge enthält keine
     Wide-Character-Werte, wenn die Eingabe-Zeichenkette aus Wide-Charac-
     ter-Werten leer ist oder nur aus Wide-Character-Werten besteht, die
     Zwischenraumzeichen sind, bzw. wenn der erste Wide-Character-Wert, der
     kein Zwischenraumzeichen ist, etwas anderes ist als ein Vorzeichen,
     eine Ziffer oder ein Dezimalzeichen.

     Wenn diese mittlere Folge das erwartete Format aufweist, wird die
     Folge der Wide-Character-Werte, die mit der ersten Ziffer oder dem
     Dezimalzeichen beginnt (je nachdem, was zuerst steht), als Gleitpunkt-
     konstante entsprechend der Definition in der Sprache C interpretiert.
     Der Unterschied besteht darin, daß das Dezimalzeichen statt des Punk-
     tes verwendet wird und, wenn weder ein Exponententeil noch ein Dezi-
     malzeichen erscheint, nach der letzten Ziffer in der Zeichenkette aus
     Wide-Character-Werten ein Dezimalzeichen angenommen wird. Wenn die
     Folge mit einem Minuszeichen beginnt, ist das Ergebnis der Umwandlung
     negativ. Ein Zeiger auf die letzte Zeichenkette aus Wide-Character-
     Werten wird in dem Objekt abgelegt, auf das endptr zeigt, wenn endptr
     kein Nullzeiger ist.






Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

wcstod(3C)                                                       wcstod(3C)

     Das Dezimalzeichen ist in der Locale des Programms definiert (Katego-
     rie LSNUMERIC). In der POSIX-Locale, bzw. in einer Locale, in der das
     Dezimalzeichen nicht definiert ist, ist das Dezimalzeichen standardmä-
     ßig der Punkt (.).

     In einer anderen Locale (nicht POSIX) können andere, implementations-
     abhängige Formate für die mittlere Folge zulässig sein.

     Wenn diese mittlere Folge leer ist oder nicht das erwartete Format
     aufweist, wird keine Umwandlung durchgeführt. Der Wert von nptr wird
     in dem Objekt abgelegt, auf das endptr zeigt, wenn endptr kein Null-
     zeiger ist.

     Da Null sowohl bei einem Fehler zurückgegeben wird als auch bei Erfolg
     einen gültigen Rückgabewert darstellt, muß eine Anwendung, die auf
     Fehler prüfen will, die folgenden Aktionen ausführen: errno wird auf 0
     gesetzt, wcstod() aufgerufen und der Wert von errno überprüft. Falls
     dieser Wert ungleich Null ist, wird angenommen, daß ein Fehler aufge-
     treten ist.

     Die Funktion wcstod() schlägt fehl, wenn:

     ERANGE    Der Wert, der zurückgegeben werden soll, würde zu einem
               Überlauf oder einem Unterlauf führen.

ERGEBNIS
     Die Funktion wcstod() gibt gegebenenfalls den konvertierten Wert
     zurück. Wenn keine Umwandlung durchgeführt werden konnte, wird Null
     zurückgegeben.

     Wenn der richtige Wert außerhalb des Bereichs der darstellbaren Werte
     liegt, wird HUGEVAL zurückgegeben (entsprechend dem Vorzeichen des
     Wertes). errno wird auf ERANGE gesetzt.

     Wenn der richtige Wert zu einem Unterlauf führen würde, wird Null
     zurückgegeben. errno wird auf ERANGE gesetzt.

SIEHE AUCH
     iswspace(3C), localeconv(3C), setlocale(3C), wcstol(3C), scanf(3S),
     wchar(5).














Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

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