Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Benutzerspezifische Lokalitäten

&pagelevel(3)&pagelevel

Der Benutzer kann sich seine eigenen Lokalitäten definieren.

Dazu stellt die CRTE-Bibliothek SYSLNK.CRTE zwei Quellprogrammelemente (Typ S) mit den Namen USLOCC und USLOCA bereit.
USLOCC ist ein C-Quellprogramm, USLOCA ist ein Assembler-Quellprogramm. Die beiden Quellprogramme sind für die Erzeugung von benutzerspezifischen Lokalitäten gleichwertig.

Die Quellprogramme legen die Daten für die einzelnen Lokalitätskategorien fest und sind mit den Daten der C-Lokalität vorbelegt. Der Aufbau dieser Daten ist weiter unten beschrieben. Diese Daten können auf die gewünschten Werte geändert werden.

Außerdem ist in den Quellprogrammen folgende Änderung vorzunehmen:

In den Quellprogrammen ist eine Adresstabelle mit dem Namen USERLOC definiert. Dieser Name muss auf einen vom Benutzer festzulegenden Namen geändert werden. Dieser Name muss ein gültiger Entryname sein.

Im C-Quellprogramm braucht dazu nur der Name USERLOC mit einer #define-Anwei-sung modifiziert zu werden. Im Assembler-Quellprogramm muss der Name USERLOC in der Definitionszeile der Tabelle und in der ENTRY-Anweisung modifiziert werden.

Der vom Benutzer modifizierte Name wird beim Aufruf der Bibliotheksfunktion setlocale zur Kennzeichung der benutzerspezifischen Lokalität verwendet (als Zeichenkette im zweiten Parameter).

Die modifizierten Quellprogramme können mit dem C/C++-Compiler bzw. mit dem Assembler (auch ASSGEN) übersetzt werden. Wird das Modul nicht in der Bibliothek SYS-
LNK.CRTE sondern in einer anderen PLAM-Bibliothek abgelegt, muss diese Bibliothek vor Start des C-Programms mit folgendem ADD-FILE-LINK-Kommando zugewiesen werden:

/ADD-FILE-LINK LINK-NAME=IC@LOCAL,FILE-NAME=bibliothek

Aufbau der Daten für die einzelnen Lokalitätskategorien

LC_COLLATE

Die Sortierreihenfolge wird durch eine Tabelle (COLL/uscol) festgelegt, die den Sortierrang jedes Zeichens durch ein Gewicht definiert. Die Initialwerte sind die eigenen sedezimalen Werte der Zeichen, d.h. die Sortierreihenfolge entspricht der EBCDIC-Reihenfolge.

LC_CTYPE

Es gibt 3 Tabellen, die für alle EBCDIC-Zeichen die Klassifizierung und die Umwandlung von Groß- in Kleinbuchstaben bzw. von Klein- in Großbuchstaben festlegen.

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

                   Assembler-Programm    C-Programm
Großbuchstabe             X'01'             _U
Kleinbuchstabe            X'02'             _L
Dezimalziffer             X'04'             _N
Zwischenraum              X'08'             _S
Sonderzeichen             X'10'             _P
Kontrollzeichen           X'20'             _C
Sedezimalzeichen          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_NUMERIC, LC_MONETARY

Für alle Informationen vom Typ char * ist eine Zeichenkette von maximal 8 Zeichen vorgesehen. Diese Zeichenketten müssen immer mit dem Nullbyte abgeschlossen sein.

LC_TIME

Für die Wochentags- und Monatsnamen sind Zeichenketten von maximal 12 Zeichen vorgesehen.