Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

setlocale - Lokalität auswählen/abfragen

&pagelevel(4)&pagelevel

Definition

#include <locale.h>

char *setlocale(int category, const char *locale);

Mit setlocale lässt sich die aktuelle Lokalität abfragen oder eine neue Lokalität auswählen. Die Lokalität kann sich dabei auf alle Lokalitätsvariablen des Programms beziehen oder auf Teile davon.
Die Lokalitätsvariablen sind in <locale.h> definiert.

Parameter

int category

Kategorie der Lokalitätsvariablen, auf die sich die mit locale ausgewählte Lokalität beziehen soll. category kann folgende vordefinierte Werte enthalten:

LC_ALL

Lokalitätsvariablen aller Kategorien.

LC_COLLATE

Die Sortierreihenfolge beeinflusst das Verhalten der Funktionen strcoll und strxfrm.

LC_CTYPE

Die Zeichenart beeinflusst das Verhalten der Makros zur Zeichenbearbeitung is... (nicht isdigit und isxdigit), tolower, toupper, strlower und strupper.

LC_MONETARY

Die Konventionen zur Darstellung von monetären Werten beeinflussen die von localeconv gelieferten Werte.

LC_NUMERIC

Die Konventionen zur Darstellung von nicht-monetären numerischen Werten beeinflussen die Art des Dezimalpunktes bei formatierter Ein/Ausgabe und bei der Umwandlung von Zeichenketten (atof, strtod), sowie die von localeconv gelieferten Werte.

LC_TIME

Die Konventionen zur Darstellung von Datum und Uhrzeit beeinflussen das Verhalten von strftime.


const char *locale

Zeichenkette, die die Lokalität auswählt. Folgende vordefinierte Lokalitäten stehen zur Verfügung (ausführliche Beschreibung siehe "Vordefinierte Lokalität C"):

"C"

Definiert die minimale Umgebung für die Übersetzung eines C-Programms und ist bei Programmstart voreingestellt (Ausnahme: siehe Lokalität "V1CTYPE").

""

Standard-Lokalität. Sie entspricht in dieser Version der Lokalität "C".

"V1CTYPE"

Kompatible Lokalität zum C-Laufzeitsystem V1.0. "V1CTYPE" wird bei Programmstart automatisch eingestellt, wenn die main-Routine ein C-V1.0-Objekt ist.

"V2CTYPE"

Kompatible Lokalität zum C-Laufzeitsystem V2.0 und V2.1.

"GERMANY"

Länderspezifische Lokalität, die den landesüblichen Konventionen entspricht.

"De.EDF04F"

Länderspezifische Lokalität, deren Konvertierungstabellen auf ASCII- Code ISO 8859-15 bzw. EBCDIC-Code EDF04F basieren und die in der Kategorie LC_MONETARY die Währung “DM“ unterstützt.

"De.EDF04F@euro"

Länderspezifische Lokalität, deren Konvertierungstabellen auf ASCII- Code ISO 8859-15 bzw. EBCDIC-Code EDF04F basieren und die in der Kategorie LC_MONETARY die Währung “Euro“ unterstützt.

Die Zeichenketten sind in der Include-Datei <locale.h> folgendermaßen vordefiniert:

LC_C_C

"C"

LC_C_DEFAULT

""

LC_C_V1CTYPE

"V1CTYPE"

LC_C_V2CTYPE

"V2CTYPE"

LC_C_GERMANY

"GERMANY"

LC_C_De.EDF04F

"De.EDF04F"

LC_C_De.EDF04F@euro

"De.EDF04F@euro"

Wird für locale ein NULL-Zeiger übergeben, wird die aktuelle Lokalität für die Kategorie category nicht verändert.

Returnwert

Zeiger auf eine Zeichenkette, die die aktuelle Lokalität für die angegebene Kategorie category angibt.


                      

Diese Zeichenkette kann bei setlocale-Aufrufen als Parameter locale verwendet werden.
Die Zeichenkette kann folgende Werte annehmen:
"C", "V1CTYPE", "V2CTYPE", "GERMANY", "De.EDF04F", "De.EDF04F@euro".

Bei Angabe der Kategorie LC_ALL enthält die Zeichenkette den Wert "C", sofern für alle Kategorien dieser Wert eingestellt ist.
Sobald für eine Kategorie eine Lokalität ungleich "C" eingestellt ist, enthält die Zeichenkette die Lokalitäten für alle Kategorien.
Den Werten für die einzelnen Kategorien wird dann jeweils ein Schrägstrich (/) vorangestellt, der den Beginn eines neuen Wertes anzeigt.
Die Reihenfolge der Lokalitäten entspricht der Reihenfolge der oben aufgeführten Kategorien (siehe Parameterbeschreibung int category).

Die letzte (sechste) Lokalität in der Zeichenkette bezieht sich auf die Kategorie LC_MESSAGES, die derzeit für die Lokalitäten “C“, “GERMANY“, “VC1TYPE“ und “VC2TYPE“ nicht unterstützt wird und für diese Lokalitäten immer auf "C" gesetzt ist.
Geben Sie hier die Lokalität "De.EDF04F" oder "De.EDF04F@euro" an, wird in der Kategorie LC_MESSAGES der entsprechende Wert eingetragen.

Wird eine Zeichenkette, die die Lokalitäten für alle Kategorien enthält, als Parameter locale bei einem setlocale-Aufruf verwendet und eine andere Kategorie als LC_ALL angegeben, dann wird dieser Zeichenkette nur die Lokalität für die angegebene Kategorie entnommen (ohne den führenden Schrägstrich).

Beispiel für den Returnwert bei LC_ALL:

"/V2CTYPE/C/GERMANY/C/GERMANY/C"

    1     2    3    4    5    6

Position

Kategorie

Lokalität

1

LC_COLLATE

V2CTYPE

2

LC_CTYPE

C

3

LC_MONATARY

GERMANY

4

LC_NUMERIC

C

5

LC_TIME

GERMANY

6

LC_MESSAGES

C

 

NULL-Zeiger

falls die ausgewählte Kategorie nicht hergestellt werden kann. Die bisher aktuelle Lokalität bleibt unverändert

Hinweise

Die verfügbaren Lokalitäten sind im Kapitel "Lokalität“ ausführlich beschrieben.

Anwenderspezifische Lokalitäten:
Zusätzlich zu den o.g. vordefinierten Lokalitäten lassen sich auch eigene Lokalitäten implementieren und durch setlocale auswählen (siehe Abschnitt "Benutzerspezifische Lokalitäten“).

Die Zeichenkette, auf die der Returnwert von setlocale zeigt, darf nicht explizit durch das Programm verändert werden. Sie kann nur durch setlocale-Aufrufe überschrieben werden.

Soll die aktuelle Lokaltität lediglich abgefragt, aber nicht verändert werden, ist für locale ein NULL-Zeiger zu übergeben.

Siehe auch

localeconv