Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Lokalität

&pagelevel(3)&pagelevel

Die Lokalität ist eine Untermenge der Festlegungen für die Laufzeitumgebung. Durch die Lokalität wird das Verhalten von C-Programmen in Bezug auf landesspezifische Konventionen, Normen und Sprachen beeinflusst. Die Lokalität besteht aus einer oder mehreren Kategorien. In XPG4 Version 2-konformen Umgebungen werden folgende Kategorien unterstützt:

LC_ALL

Beeinflusst alle Werte der aktuellen Lokalität.

LC_COLLATE

Beeinflusst die Sortierreihenfolge von Zeichen. Jedes Zeichen wird im Verhältnis zu einem anderen Zeichen durch ein Gewicht definiert. Dies hat Auswirkung auf das Verhalten von strcoll() und strxfrm().

Im POSIX-Subsystem heißt die entsprechende Beschreibungsdatei /usr/lib/locale/locale/LC_COLLATE.

Im BS2000 heißt die entsprechende Tabelle COLL/uscol.

LC_CTYPE

Beeinflusst die Zuordnung von Zeichen zu Zeichenklassen, die Zuordnung zwischen Groß- und Kleinbuchstaben und andere Zeicheneigenschaften.

Im POSIX-Subsystem heißt die entsprechende Beschreibungsdatei /usr/lib/locale/locale/LC_CTYPE.

Im BS2000 gibt es 3 Tabellen für alle EBCDIC-Zeichen:

Die Klassifizierungstabelle TYPE/ustyp ordnet jedes EBCDIC-Zeichen einer bestimmten Zeichenklasse zu. Diese Klasse wird durch folgende Werte dargestellt:

Zeichenklasse

Assembler-Kodierung

C-Kodierung

Großbuchstabe (upper)

X'01'

_U

Kleinbuchstabe (lower)

X'02'

_L

Dezimalziffer (digit)

X'04'

_N

Zwischenraum (space)

X'08'

_S

Sonderzeichen (punct)

X'10'

_P

Steuerzeichen (cntrl)

X'20'

_C

Hexadezimalzeichen
(xdigit)

X'40'

_X

Die C-Werte sind in der Include-Datei ctype.h definiert.

Die Tabellen für die Umwandlung von Groß- in Kleinbuchstaben LOWER/uslow bzw. von Klein- in Großbuchstaben UPPER/usupp geben für jedes Zeichen von X’00’ bis X’FF’ das Ergebniszeichen der Umwandlung an. Diese Tabellen werden von den Makros toupper() und tolower() zur Umwandlung in Groß- bzw. Kleinbuchstaben verwendet. Die Tabelle braucht nur für die Zeichen belegt sein, die in der Klassifizierungstabelle als Groß- bzw. Kleinbuchstaben klassifiziert sind.

LC_MESSAGES

Beeinflusst die Formate von Meldungen.

Im POSIX-Subsystem heißt die entsprechende Beschreibungsdatei /usr/lib/locale/locale/LC_MESSAGES.

Diese Kategorie wird durch die BS2000-Funktionalität nicht unterstützt.

LC_MONETARY

Beeinflusst die Formate von monetären Werten.

Im POSIX-Subsystem heißt die entsprechende Beschreibungsdatei /usr/lib/locale/locale/LC_MONETARY.

LC_NUMERIC

Beeinflusst die Darstellung von nichtmonetären numerischen Werten bei formatierter Ein-/Ausgabe (fprintf(), fscanf()) und bei der Umwandlung von Zeichenketten (atof(), strtod()), sowie die von localeconv() gelieferten Werte.

Im POSIX-Subsystem heißt die entsprechende Beschreibungsdatei /usr/lib/locale/locale/LC_NUMERIC.

LC_TIME

Beeinflusst die Darstellung von Datum und Uhrzeit beim Aufruf von strftime().

Im POSIX-Subsystem heißt die entsprechende Beschreibungsdatei /usr/lib/locale/locale/LC_TIME.

Diese Lokalitätskategorien sind auch als Umgebungsvariablen definiert.

Die XPG4 Version 2-konformen Kommandos (z.B. POSIX-Kommandos) werden in ihrem Verhalten durch die aktuelle Lokalität beeinflusst (siehe Abschnitt "Umgebungsvariablen“ und Handbuch „POSIX-Kommandos“ [2]). Mit den C-Bibliotheksfunktionen setlocale() und localeconv() kann die aktuelle Lokalität zur Laufzeit eines C-Programms geändert werden, andere C-Bibliotheksfunktionen werden von der aktuellen Lokalität beeinflusst:

atof()

isalnum()

isalpha()

isascii()

iscntrl()

isdigit()

isgraph()

islower()

isprint()

ispunct()

isspace()

isupper()

isxdigit()

localeconv()

setlocale()

strcoll()

strftime()

strtod()

strxfrm()

tolower()

toupper()

wctomb()

wcstombs()



Die C-Laufzeitbibiliothek stellt einige vordefinierte Lokalitäten zur Verfügung (siehe Abschnitt "Vordefinierte Lokalitäten“). Der Benutzer kann aber auch eigene Lokalitäten definieren (siehe Abschnitt "Benutzerspezifische Lokalitäten“).

Für die Unterstützung des Euros stellt Ihnen CRTE die vordefinierten Lokalitäten De.ED-F04F und De.EDF04F@euro zur Verfügung. Diese beiden Lokalitäten unterscheiden sich nur in der Kategorie LC_MONETARY, die für die Lokalität De.EDF04F die deutsche Mark (DM) darstellt, für die Lokalität De.EDF04F@euro den Euro.

Wenn der Wert einer Lokalitätsumgebungsvariablen mit einem Schrägstrich (/) beginnt, wird er als Pfadname für die Lokalitätsdefinition interpretiert.

Anwendungen können die aktuelle Lokalität durch einen setlocale-Aufruf ändern, d.h. mit einer anderen vordefinierten Lokalität besetzen. Wird die Funktion mit einer leeren Zeichenkette für locale aufgerufen, wird der Wert der Umgebungsvariablen ausgewertet, die durch das category-Argument angegeben ist:

setlocale(LC_ALL, "");

In diesem Fall werden alle Kategorien durch die entsprechenden Umgebungsvariablen bestimmt. Wenn die Umgebungsvariable nicht gesetzt ist oder eine leere Zeichenkette enthält, wird die Umgebung ausgewertet (siehe auch Abschnitt "Umgebungsvariablen“).