| setlocale | |||
Nomsetlocale - Fixe la localisation courante.Synopsis#include <locale.h> char *setlocale (int category, const char * locale); DescriptionLa fonction setlocale() est utilisée pour indiquer ou demander la localisation courante du programme. Si locale vaut C ou POSIX, la localisation en cours est fixée à une valeur portable.Si locale vaut , la localisation est fixée à sa valeur par défaut qui est choisie avec la variable d'environnement LANG. Au démarrage du programme, la localisation "C""" est sélectionnée par défaut. L'argument category détermine quelles sont les fonctions influencées par la nouvelle localisation :
Un programme peut être rendu portable en appelant setlocale(LC_ALL, """""") lors de son initialisation, en utilisant les valeurs renvoyées par localeconv() pour les valeurs dépendant de la localisation, et en utilisant strcoll() ou strxfrm() pour comparer les chaînes de caractères. Valeur RenvoyéeUn appel reussi à setlocale() renvoie une chaine correspondant à la localisation. Cette chaîne peut être allouée dans une zone statique. La chaine 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 renovyée est NULL si la demande ne peut pas être honorée.
ConformitéANSI C, POSIX.1Linux (c'est à dire la libc) 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écisement "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() fonctionne correctement. Désormais les européens non-anglicistes doivent peiner un peu plus pour installer les véritables fichiers de localisation. Les fonctions de la famille printf() peuvent honorer ou non la localisation. Voir Aussilocale(1) , localedef(1) , strcoll(3) , isalpha(3) , localeconv(3) , strftime(3) , locale(7)
TraductionChristophe Blaess, 1997.
|