Beschreibung | setlocale() kann den Teil der Lokalität, der durch category und locale angegeben wird, ändern oder die aktuelle Lokalität ganz oder teilweise ermitteln.
Für category können folgende Konstantennamen angegeben werden, die einer Datenbank zugeordnet sind: LC_ALL
| beeinflusst die gesamte Lokalität (siehe Abschnitt "Lokalität“). BS2000 Die Lokalitätskomponente LC_MESSAGES wird bei BS2000-Funktionalität nicht unterstützt (siehe Abschnitt "Umfang der unterstützten C-Bibliothek“). (Ende) | LC_COLLATE
| beeinflusst das Verhalten von regulären Ausdrücken und der Vergleichsfunktionen für Zeichenketten. | LC_CTYPE
| beeinflusst das Verhalten von regulären Ausdrücken und der Funktionen zur Zeichenbearbeitung und der Multibyte-Funktionen. | LC_MESSAGES
| beeinflusst das Format von Meldungs-Zeichenketten. BS2000 Diese Lokalitätskomponente wird bei BS2000-Funktionalität nicht unterstützt (siehe Abschnitt "Umfang der unterstützten C-Bibliothek“ ). (Ende) | LC_MONETARY
| beeinflusst die monetären Formatierungsinformationen, die von localeconv() zurückgegeben werden. | LC_NUMERIC
| beeinflusst den Dezimalpunkt für die formatierte Ein- und Ausgabe und die Zeichenketten-Umwandlungsfunktionen und nichtmonetäre Formatierungsinformationen, die von localeconv() zurückgegeben werden. | LC_TIME
| beeinflusst das Verhalten der Zeit-Umwandlungsfunktionen. | Das Verhalten von nl_langinfo() wird ebenfalls durch die Einstellungen von category beeinflusst. locale ist ein Zeiger auf eine Zeichenkette, die die benötigten Einstellungen für category enthält. Zusätzlich sind folgende, für locale vordefinierten Werte für alle Einstellungen von category definiert: "POSIX"
| spezifiziert die minimale Umgebung für die Programmiersprache C; sie wird POSIX-Lokalität genannt. Wenn setlocale() nicht aufgerufen wird, ist die POSIX-Lokalität voreingestellt. | "C"
| wird C-Lokalität genannt und entspricht "POSIX". | ""
| spezifiziert eine sprachabhängige Umgebung, die dem Wert der category entsprechenden Umgebungsvariablen LC_* bzw. der Umgebungsvariablen LANG entspricht. | Nullzeiger | wird verwendet, um setlocale() anzuweisen, die aktuelle Lokalität abzufragen und deren Namen zurückzugeben. | Werden Threads verwendet, so wirkt sich die Funktion auf den Prozess oder auf einen Thread wie folgt aus: Wenn der Prozess ”multithreaded” ist, wirkt sich die Änderung der Lokalität auf alle Threads des Prozesses aus. BS2000 "V1CTYPE"
| Im Unterschied zur C-Lokalität gelten die Zeichen X’8B’, X’8C’, X’8D’ als Kleinbuchstaben, die Zeichen X’AB’, X’AC’, X’AD’ als Großbuchstaben und die Zeichen X’C0’ und X’D0’ als Sonderzeichen. In der Lokalität "C" gelten all diese Zeichen als Steuerzeichen. | "V2CTYPE"
| Im Unterschied zur C-Lokalität ist die Sortierreihenfolge so eingestellt, dass sie den Werten des EBCDIC-Zeichensatzes entspricht. | "GERMANY"
| Die im deutschen Sprachraum üblichen Konventionen sind festgelegt. | "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: symbolische Konstante | voreingestellter Wert | LC_C_C
| "C"
| LC_C_DEFAULT
| ""
| LC_C_V1CTYPE
| "V1CTYPE"
| LC_C_V2TYPE
| "V2CTYPE"
| LC_C_GERMANY
| "GERMANY"
| LC_C_DeEDF04F
| "De.EDF04F"
| LC_C_DeEDF04F@euro
| "De.EDF04F@euro"
|
(Ende) |
Hinweise | Die folgenden Programmanweisungen zeigen, wie ein Programm die Lokalität initialisieren kann, während die Lokalität teilweise verändert wird, so dass reguläre Ausdrücke und Zei-chenketten-Operationen auf einen fremdsprachigen Text angewendet werden können: setlocale(LC_ALL, "De");
setlocale(LC_COLLATE, "Fr@dict");
Internationalisierte Programme müssen setlocale() aufrufen, um Sprachspezifika zu berücksichtigen. Dies kann durch einen Aufruf von setlocale() geschehen, der wie folgt aussieht: setlocale (LC_ALL, "");
Dieser Aufruf verwendet die Einstellungen der Umgebungsvariablen, um die Lokalität zu initialisieren. Wenn LC_MESSAGES geändert wird, hat dies keine Auswirkung auf Meldungskataloge, die schon von catopen -Aufrufen geöffnet worden sind. BS2000 Beim Start eines Programms wird aus den in SYSPOSIX .name hinterlegten Variablen der Zeigervektor environ aufgebaut. Falls beim Aufruf von setlocale() als Lokalität eine leere Zeichenkette "" angegeben wird, sind die in diesem Vektor hinterlegten Umgebungsvariablen mit ihren Werten maßgeblich. Falls die abgefragte Umgebungsvariable nicht vorhanden ist, gilt der entsprechende Wert aus der POSIX-Lokalität. (Ende) Zusätzlich zu den vordefinierten Lokalitäten lassen sich auch eigene Lokalitäten implementieren und durch setlocale() auswählen (siehe Abschnitt "Lokalität“). |
Siehe auch | catopen() , ctime() , ctype() , environ , exec , getdate() , gettxt() , isalnum() , isalpha() , iscntrl() , isgraph() , islower() , isprint() , ispunct() , isspace() , isupper() , iswalnum() , iswalpha() , iswcntrl() , iswgraph() , iswlower() , iswprint() , iswpunct() , iswspace() , iswupper() , localeconv() , mblen() , mb-stowcs() , mbtowc() , nl_langinfo() , printf() , scanf() , strcoll() , strerror() , strfmon() , strtime() , strtod() , strxrfm() , tolower() , toupper() , towlower() , towupper() , wcscoll() , wcstod() , wcstombs() , wcsxfrm() , wctomb() , langinfo.h , locale.h , Abschnitt "Lokalität“.
|