SETLOCALE
Section : Manuel du programmeur Linux (
3)
Mise à jour de la version anglaise : 4 juillet 1999
Index
Menu principal
NOM
setlocale - Fixe la localisation courante
SYNOPSIS
#include <locale.h>
char *setlocale(int categorie, const char *locale);
DESCRIPTION
La fonction
setlocale()
est utilisée pour indiquer ou demander
la localisation courante du programme.
Si
locale
n'est pas NULL, la localisation courante du programme
est modifiée en fonction des arguments.
L'argument
categorie
détermine quelle partie de la localisation
sera concernée par la modification.
- LC_ALL
-
toute la localisation,
- LC_COLLATE
-
la mise en correspondance des expressions rationnelles
(classes d'équivalence et intervalles),
et le classement des chaînes de caractères,
- LC_CTYPE
-
la mise en correspondance des expressions rationnelles
la classification de caractères, les conversions, les comparaisons
dépendant de la casse et les fonctions pour les caractères larges.
- LC_MESSAGES
-
les messages en langue naturelle
- LC_MONETARY
-
l'affichage des valeurs monétaires.
- LC_NUMERIC
-
le symbole décimal (point, virgule, ...)
- LC_TIME
-
la forme de la date et l'heure.
L'argument
locale
est un pointeur sur une chaîne de caractères
contenant la configuration de la
categorie.
Une telle chaîne peut être une constante bien connue,
comme « C » ou « fr_FR » (voir plus bas)
ou une chaîne opaque renvoyée par un autre appel précédent à
setlocale().
Si
locale
est
,
chaque partie de la localisation doit être modifiée
en fonction des variables d'environnement.
Les détails d'implémentation varient.
Pour la glibc, d'abord
(quelle que soit la
catégorie)
la variable d'environnement
LC_ALL
est examinée, puis la variable d'environnement
avec le même nom que la catégorie
(LC_COLLATE,
LC_CTYPE,
LC_MESSAGES,
LC_MONETARY,
LC_NUMERIC,
LC_TIME)
et finalement la variable
LANG.
La première variable d'environnement existant est utilisée.
Si sa valeur n'est pas une spécification de localisation valide,
la localisation n'est pas modifiée, et
setlocale()
renvoie NULL.
Les localisations
C
et
POSIX
sont portables, leur partie
LC_CTYPE
correspond au jeu de caractères ASCII 7 bits.
Un nom de localisation est typiquement de la forme
langue[_territoire][.codeset][@modificateur],
où la
langue
est un code linguistique ISO 639, le
territoire
un code de pays ISO 3166, et
codeset
un jeu de caractères ou un identifiant d'encodage, comme
ISO-8859-1
ou
UTF-8.
Pour voir une liste de toutes les localisations disponibles,
essayez « locale -a », cf.
locale(1).
Si
locale
est NULL,
la localisation courante est consultée, mais pas modifiée.
Au démarrage, la localisation portable
C
est sélectionnée par défaut.
Un programme peut être rendu portable en appelant
setlocale(LC_ALL, "");
lors de son initialisation, en utilisant les valeurs renvoyées par
localeconv(3)
pour les valeurs dépendant de la localisation,
en utilisant les fonctions multi-octets et caractères larges
pour traiter les chaînes si
MB_CUR_MAX > 1,
et en utilisant
strcoll(3),
wcscoll(3)
ou
strxfrm(3),
wcsxfrm(3)
pour comparer les chaînes de caractères.
VALEUR RENVOYÉE
Un appel réussi à
setlocale()
renvoie une chaîne correspondant à la localisation.
Cette chaîne peut être allouée dans une zone statique.
La chaîne est renvoyée de telle manière qu'un appel ultérieur
avec cette chaîne et la catégorie associée restituera cette partie
de la localisation du processus.
La valeur renvoyée est NULL si la demande ne peut pas être honorée.
CONFORMITÉ
C89, C99, POSIX.1-2001.
NOTES
Linux (c'est-à-dire la glibc) supporte les localisations portables
C et
POSIX.
Il y avait auparavant un support pour le Latin-1 européen
ISO-8859-1
(par exemple dans la libc-4.5.21 et libc-4.6.27), ainsi que
et le
KOI-8
russe (plus précisément "koi-8r" dans la libc-4.6.27).
Il suffisait alors d'initialiser la variable d'environnement
LC_TYPE=ISO-8859-1
pour que
isprint(3)
fonctionne correctement.
Désormais, les européens non-anglophones doivent peiner un peu
plus pour installer les véritables fichiers de localisation.
VOIR AUSSI
locale(1),
localedef(1),
isalpha(3),
localeconv(3),
nl_langinfo(3),
rpmatch(3),
strcoll(3),
strftime(3),
charsets(7),
locale(7)
TRADUCTION
Ce document est une traduction réalisée par Christophe Blaess
<http://www.blaess.fr/christophe/> le 7 novembre 1996
et révisée le 17 juillet 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation
française de qualité. La version anglaise la plus à jour de ce document est
toujours consultable via la commande : « LANG=C man 3 setlocale ».
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
erreur dans cette page de manuel.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- CONFORMITÉ
-
- NOTES
-
- VOIR AUSSI
-
- TRADUCTION
-
Dernière mise à jour : 17 juillet 2008