localeconv(3C) localeconv(3C)
NAME
localeconv - Numerische Formatierinformationen lesen
SYNTAX
#include <locale.h>
struct lconv *localeconv (void);
BESCHREIBUNG
localeconv() setzt die Komponenten eines Objekts vom Typ struct lconv
(definiert in locale.h) auf die Werte, die den Formatierungskonventio-
nen der numerischen Größen (monetäre und andere Größen) der aktuellen
lokalen Umgebung entsprechen [siehe setlocale(3C)]. Die Definition von
struct lconv ist im folgenden aufgeführt (die Werte für die Komponen-
ten in der lokalen C-Umgebung sind innerhalb der Kommentarzeichen
angegeben):
char *decimalpoint; /* "." */
char *thousandssep; /* "" (Zeichenkette der Länge 0) */
char *grouping; /* "" */
char *intcurrsymbol; /* "" */
char *currencysymbol; /* "" */
char *mondecimalpoint; /* "" */
char *monthousandssep; /* "" */
char *mongrouping; /* "" */
char *positivesign; /* "" */
char *negativesign; /* "" */
char intfracdigits; /* CHARMAX */
char fracdigits; /* CHARMAX */
char pcsprecedes; /* CHARMAX */
char psepbyspace; /* CHARMAX */
char ncsprecedes; /* CHARMAX */
char nsepbyspace; /* CHARMAX */
char psignposn; /* CHARMAX */
char nsignposn; /* CHARMAX */
Die Komponenten der Struktur vom Typ char * sind Zeichenketten, von
denen jede (mit Ausnahme von decimalpoint) auf "" zeigen kann;
dadurch wird angegeben, daß der Wert der aktuellen lokalen Umgebung
nicht verfügbar ist oder die Länge Null hat. Die Komponenten mit dem
Typ char sind nichtnegative Zahlen, von denen jede den Wert CHARMAX
(definiert in der Datei limits.h) annehmen kann; dadurch wird ange-
zeigt, daß der Wert der aktuellen lokalen Umgebung nicht verfügbar
ist. Die Komponenten haben folgende Bedeutungen:
char *decimalpoint
Dezimalpunktzeichen zur Formatierung nichtmonetärer Größen
char *thousandssep
Zeichen zur Trennung von Zifferngruppen links vom Dezimalpunkt
zur Formatierung nichtmonetärer Größen
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
localeconv(3C) localeconv(3C)
char *grouping
Zeichenkette, in der jedes Element als ganze Zahl behandelt wird;
die Anzahl der Ziffern, die die aktuelle Gruppe in einer forma-
tierten, nichtmonetären Größe annimmt. Die Elemente von grouping
werden wie folgt interpretiert:
CHAR-MAX Keine weitere Gruppierung wird durchgeführt.
0 Das vorherige Element wird für die restlichen Ziffern
wiederholt verwendet.
other Der Wert ist die Anzahl der Ziffern, welche sich in der
aktuellen Gruppe befinden. Das nächste Element wird
überprüft, um die Größe der nächsten Zifferngruppe
links von der aktuellen Gruppe zu bestimmen.
char *intcurrsymbol
Internationales Währungssymbol. Der Operand ist eine Zeichenkette
aus vier Zeichen. Die ersten drei Zeichen bilden das internatio-
nale Währungssymbol, wie bei ISO 4217:1987 festgelegt. Das vierte
Zeichen ist das Trennzeichen zwischen Währungssymbol und monetä-
rer Größe.
char *currencysymbol
Lokales Währungssymbol für die aktuelle lokale Umgebung.
char *mondecimalpoint
Dezimalpunkt für die Formatierung von monetären Größen. Im ISO-C
Standard ist diese Komponente auf ein Byte beschränkt. Wenn ein
Multibyte-Operand spezifiziert wird, ist das Ergebnis unbestimmt.
char *monthousandssep
Trennzeichen für Zifferngruppen links vom Dezimalpunkt in forma-
tierten monetären Größen. Im ISO-C Standard ist diese Komponente
auf ein Byte beschränkt. Wenn ein Multibyte-Operand spezifiziert
wird, ist das Ergebnis unbestimmt.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
localeconv(3C) localeconv(3C)
char *mongrouping
Größen aller Gruppen von Stellen in formatierten monetären Grö-
ßen. Der Operand ist eine Folge ganzer Zahlen, die durch Semiko-
lon voneinander getrennt sind. Jede Zahl gibt die Anzahl der
Stellen in jeder Gruppe an, wobei die erste Zahl die Größe der
Gruppe angibt, die direkt vor dem Dezimaltrennzeichen steht, und
die folgenden Zahlen die vorangehenden Gruppen bestimmen. Wenn
die letzte Zahl ungleich -1 ist, wird die vorhergehende Gruppe
(falls es eine gibt) für den Rest der Stellen immer wieder ver-
wendet. Wenn die letzte Zahl -1 ist, wird keine weitere Gruppie-
rung durchgeführt.
char *positivesign
Zeichenkette, welche eine nichtnegative, formatierte, monetäre
Größe anzeigt.
char *negativesign
Zeichenkette, welche eine negative, formatierte, monetäre Größe
anzeigt.
char intfracdigits
Anzahl der Dezimalstellen, die in international formatierten
monetären Größen angezeigt werden, wobei intcurrsymbol verwen-
det wird.
char fracdigits
Anzahl der Dezimalstellen, die in einer formatierten monetären
Größe dargestellt werden, wobei currencysymbol verwendet wird.
char pcsprecedes
wird auf 1 gesetzt, wenn currencysymbol oder intcurrsymbol dem
Wert für eine monetäre Größe mit einem nicht-negativen Wert vor-
angeht, und wird auf 0 gesetzt, wenn das Symbol auf den Wert
folgt.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
localeconv(3C) localeconv(3C)
char psepbyspace
wird auf 0 gesetzt, wenn kein Leerzeichen zwischen
currencysymbol oder intcurrsymbol und dem nicht-negativen Wert
für eine monetäre Größe steht. Die Komponente wird auf 1 gesetzt,
wenn ein Leerzeichen zwischen dem Symbol und dem Wert steht, uns
sie wird auf 2 gesetzt, wenn ein Leerzeichen zwischen dem Symbol
und einer angrenzenden Zeichenkette steht.
char ncsprecedes
Enthält diese Komponente den Wert 1, wird das Währungssymbol
currencysymbol oder intcurrsymbol vor den Wert einer negati-
ven, formatierten, monetären Größe geschrieben. Sonst wird die
Komponente auf 0 gesetzt.
char nsepbyspace
Wird auf 1 gesetzt, wenn das Währungssymbol currencysymbol oder
intcurrsymbol durch ein Leerzeichen vom Wert einer negativen,
formatierten monetären Größe getrennt wird. Sonst wird die Kompo-
nente auf 0 gesetzt.
char psignposn
Diese Komponente wird auf einen Wert gesetzt, der die Position
des positiven Vorzeichens positivesign für eine nichtnegative,
formatierte monetäre Größe angibt. Die Werte von psignposn und
nsignposn werden wie folgt interpretiert:
0 Die Größe und das Währungssymbol currencysymbol oder
intcurrsymbol werden in Klammern gesetzt.
1 Das Vorzeichen steht vor der Größe und dem Währungssymbol
currencysymbol oder intcurrsymbol.
2 Das Vorzeichen steht hinter der Größe und dem Währungssymbol
currencysymbol oder intcurrsymbol.
3 Das Vorzeichen steht direkt vor dem Währungssymbol
currencysymbol oder intcurrsymbol.
4 Das Vorzeichen steht direkt hinter dem Währungssymbol
currencysymbol oder intcurrsymbol.
char nsignposn
Wird auf einen Wert gesetzt, der die Position des negativen Vor-
zeichens negativesign für eine negative, formatierte, monetäre
Größe angibt.
ERGEBNIS
localeconv() liefert einen Zeiger auf das ausgefüllte Objekt. Die
Struktur, auf die der Rückgabewert zeigt, kann durch einen weiteren
Aufruf localeconv() überschrieben werden.
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
localeconv(3C) localeconv(3C)
BEISPIELE
Die folgende Tabelle demonstriert die Regeln zur Formatierung monetä-
rer Größen anhand von vier Ländern:
Land Positives Format Negatives Format Internationales Format
Italien L.1.234 -L.1.234 ITL.1.234
Niederlande F 1.234,56 F -1.234,56 NLG 1.234,56
Norwegen kr1.234,56 kr1.234,56- NOK 1.234,56
Schweiz SFrs.1,234.56 SFrs.1,234.56C CHF 1,234.56
Für diese vier Länder werden die entsprechenden Werte für die monetä-
ren Komponenten von localeconv() wie folgt zurückgegeben:
Italien Niederlande Norwegen Schweiz
intcurrsymbol "ITL." "NLG " "NOK " "CHF "
currencysymbol "L." "F" "kr" "SFrs."
mondecimalpoint "" "," "," "."
monthousandssep "." "." "." ","
mongrouping "\3" "\3" "\3" "\3"
positivesign "" "" "" ""
negativesign "-" "-" "-" "C"
intfracdigits 0 2 2 2
fracdigits 0 2 2 2
pcsprecedes 1 1 1 1
psepbyspace 0 1 0 0
ncsprecedes 1 1 1 1
nsepbyspace 0 1 0 0
psignposn 1 1 1 1
nsignposn 1 4 2 2
DATEIEN
/usr/lib/locale/locale/LCMONETARY
LCMONETARY-Datenbank für locale
/usr/lib/locale/locale/LCNUMERIC
LCNUMERIC-Datenbank für locale
SIEHE AUCH
chrtbl(1M), montbl(1M), setlocale(3C).
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98