setlocale(3C) setlocale(3C)
NAME
setlocale - Umgebung eines Programms abfragen/einstellen
SYNTAX
#include <locale.h>
char *setlocale(int category, const char *locale);
BESCHREIBUNG
setlocale() wählt den entsprechenden Teil der lokalen Umgebung eines
Programms aus, wie er in category und locale angegeben wird. category
kann die folgenden Werte enthalten: LCCTYPE, LCNUMERIC, LCTIME,
LCCOLLATE, LCMONETARY, LCMESSAGES und LCALL. Diese Namen werden in
der Datei locale.h definiert. LCCTYPE beeinflußt das Verhalten der
Funktionen zur Zeichenbearbeitung (isdigit(), tolower(), etc.) und die
Mehrbyte-Funktionen zur Zeichenbearbeitung [wie mbtowc() und
wctomb()]. LCNUMERIC beeinflußt den Dezimalpunkt für die formatierte
Ein/Ausgabe und die Zeichenketten-Umwandlungsfunktionen und die nicht-
monetären Formatierungsinformationen, die von localeconv() zurückgege-
ben werden [siehe localeconv(3C)]. LCTIME beeinflußt das Verhalten
von ascftime(), cftime(), getdate() und strftime(). LCCOLLATE beein-
flußt das Verhalten von strcoll() und strxfrm(). LCMONETARY beein-
flußt die monetären Formatierungsinformationen, die von localeconv()
zurückgegeben werden. LCMESSAGES beeinflußt das Verhalten von
gettxt() catopen(), catclose() und catgets() [siehe catopen(3C) und
catgets(3C)]. LCALL bezeichnet die vollständige lokale Umgebung des
Programms.
Jede Kategorie entspricht einer Datenbasis, die die relevanten Infor-
mationen für jede definierte lokale Umgebung enthält. Die Position
einer Datenbasis wird durch den Pfad /usr/lib/locale/locale/category
gegeben, wobei locale und category die Namen der lokalen Umgebung und
der Kategorien sind. Beispielsweise werden die Daten für die Kategorie
LCCTYPE für die lokale Umgebung "german" unter
/usr/lib/locale/german/LCCTYPE angesprochen.
Die Werte "POSIX" oder "C" für locale geben die voreingestellte mini-
male lokale Umgebung an.
Der Wert "" für locale gibt an, daß die lokale Umgebung aus den Umge-
bungsvariablen übernommen werden soll. Die Reihenfolge, in der die
Umgebungsvariablen auf die verschiedenen Kategorien überprüft werden,
ist:
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
setlocale(3C) setlocale(3C)
Kategorie 1. Umg.-Var. 2. Umg.-Var.
LCCTYPE: LCCTYPE LANG
LCCOLLATE: LCCOLLATE LANG
LCTIME: LCTIME LANG
LCNUMERIC: LCNUMERIC LANG
LCMONETARY: LCMONETARY LANG
LCMESSAGES: LCMESSAGES LANG
Bei Programmstart wird das Äquivalent von
setlocale(LCALL, "C")
ausgeführt. Dadurch wird jede Kategorie auf der lokalen Umgebung
initialisiert, die durch die lokale Umgebung "C" beschrieben ist.
Wird für locale ein Zeiger auf eine Zeichenkette übergeben, so ver-
sucht setlocale(), die lokale Umgebung für die gegebene Kategorie auf
locale zu setzen. Ist setlocale() erfolgreich, kehrt locale zurück.
Scheitert setlocale(), wird ein Nullzeiger zurückgegeben, und die
lokale Umgebung des Programms wird nicht verändert.
Für die Kategorie LCALL ist das Verhalten etwas anders. Wird für
locale ein Zeiger auf eine Zeichenkette übergeben und ist die Katego-
rie gleich LCALL, dann versucht setlocale(), die Umgebungseinstellun-
gen für alle Kategorien auf locale zu setzen. locale kann dabei eine
einfache oder eine zusammengesetzte lokale Umgebung sein. Eine zusam-
mengesetzte lokale Umgebung ist eine Zeichenkette, die mit einem /
beginnt, auf den die lokale Umgebung jeder Kategorie folgt, wiederum
getrennt durch ein /. Wenn setlocale() für eine Kategorie scheitert,
wird ein Nullzeiger zurückgegeben, und die Kategorien der Umgebungs-
einstellungen des Programms werden nicht geändert. Andernfalls wird
die lokale Umgebung zurückgeliefert.
Ein Nullzeiger für locale veranlaßt setlocale(), die aktuelle lokale
Umgebung zurückzugeben, die für category eingestellt ist. Die Einstel-
lung wird nicht geändert.
DATEIEN
/usr/lib/locale/C/LCCTYPE - LCCTYPE
/usr/lib/locale/C/LCNUMERIC - LCNUMERIC
/usr/lib/locale/C/LCTIME - LCTIME
/usr/lib/locale/C/LCCOLLATE - LCCOLLATE
/usr/lib/locale/C/LCMESSAGES - LCMESSAGES
usr/lib/locale/locale/category
Dateien mit umgebungsspezifischen Informationen für jede lokale
Umgebung und jede Kategorie
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
setlocale(3C) setlocale(3C)
SIEHE AUCH
ctime(3C), ctype(3C), getdate(3C), gettxt(3C), localeconv(3C),
mbtowc(3C), strcoll(3C), strftime(3C), strtod(3C), strxfrm(3C),
wctomb(3C), printf(3S), environ(5).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98