.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2014 Michael Kerrisk .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH NEWLOCALE 3 "1 novembre 2020" Linux "Manuel du programmeur Linux" .SH NOM newlocale, freelocale \- Créer, modifier et libérer un objet de paramètres régionaux .SH SYNOPSIS .nf \fB#include \fP .PP \fBlocale_t newlocale(int \fP\fIcategory_mask\fP\fB, const char *\fP\fIlocale\fP\fB,\fP \fB locale_t \fP\fIbase\fP\fB);\fP .PP \fBvoid freelocale(locale_t \fP\fIlocobj\fP\fB);\fP .fi .PP .RS -4 Exigences de macros de test de fonctionnalités pour la glibc (consulter \fBfeature_test_macros\fP(7))\ : .RE .PP \fBnewlocale\fP(), \fBfreelocale\fP()\ : .PD 0 .RS 4 .TP Depuis la glibc 2.10\ : _XOPEN_SOURCE\ >=\ 700 .TP Avant la glibc 2.10\ : _GNU_SOURCE .RE .PD .SH DESCRIPTION La fonction \fBnewlocale\fP() crée un nouvel objet de paramètres régionaux ou modifie un objet existant, en renvoyant une référence vers le nouvel objet ou l’objet modifié comme résultat de la fonction. L’appel crée un nouvel objet ou modifie un objet existant en fonction de la valeur de \fIbase\fP\ : .IP * 3 si \fIbase\fP est \fI(locale_t)\ 0\fP, un nouvel objet est créé\ ; .IP * si \fIbase\fP indique un objet de paramètres régionaux valable existant (c’est\-à\-dire un objet renvoyé par un précédent appel de \fBnewlocale\fP() ou \fBduplocale\fP(3)), alors cet objet est modifié par l’appel. Si l’appel réussit, le contenu de \fIbase\fP n’est pas garanti (en particulier, l’objet indiqué par \fIbase\fP pourrait être libéré et un nouvel objet créé). Par conséquent, l’appelant devrait s’assurer de ne plus utiliser \fIbase\fP avant l’appel de \fBnewlocale\fP() et devrait ensuite se rapporter à l’objet modifié à l’aide de la référence renvoyée comme résultat de la fonction. Si l’appel échoue, le contenu de \fIbase\fP reste valable et sans modification. .PP Si \fIbase\fP est l’objet spécial de paramètres régionaux \fBLC_GLOBAL_LOCALE\fP (consultez \fBduplocale\fP(3)), ou n’est pas \fI(locale_t)\ 0\fP ni un identifiant d’objet de paramètres régionaux valable, le comportement est non défini. .PP L’argument \fIcategory_mask\fP est un masque binaire indiquant les catégories de paramètres régionaux à définir dans un objet de paramètres régionaux nouvellement créé ou modifié dans un objet existant. Le masque est construit avec un OU binaire des constantes \fBLC_ADDRESS_MASK\fP, \fBLC_CTYPE_MASK\fP, \fBLC_COLLATE_MASK\fP, \fBLC_IDENTIFICATION_MASK\fP, \fBLC_MEASUREMENT_MASK\fP, \fBLC_MESSAGES_MASK\fP, \fBLC_MONETARY_MASK\fP, \fBLC_NUMERIC_MASK\fP, \fBLC_NAME_MASK\fP, \fBLC_PAPER_MASK\fP, \fBLC_TELEPHONE_MASK\fP et \fBLC_TIME_MASK\fP. Alternativement, le masque peut être défini comme \fBLC_ALL_MASK\fP, ce qui est équivalent à effectuer un OU binaire sur toutes les constantes précédentes. .PP Pour chaque catégorie indiquée dans \fIcategory_mask\fP, les données de paramètres régionaux de \fIlocale\fP seront utilisées dans l’objet renvoyé par \fBnewlocale\fP(). Si un nouvel objet de paramètres régionaux est en cours de création, les données de toutes les catégories non indiquées dans \fIcategory_mask\fP sont prises dans les paramètres régionaux par défaut ("POSIX"). .PP Les valeurs prédéfinies suivantes de \fIlocale\fP sont définies pour toutes les catégories qui peuvent être indiquées dans \fIcategory_mask\fP\ : .TP "POSIX" Un environnement de paramètres régionaux minimal pour les programmes en langage\ C. .TP "C" Équivalent à "POSIX". .TP "" Un environnement natif défini pour l’implémentation correspondant aux valeurs des variables d’environnement \fBLC_*\fP et \fBLANG\fP (consultez \fBlocale\fP(7)). .SS freelocale() La fonction \fBfreelocale\fP() désalloue les ressources associées à \fIlocobj\fP, un objet de paramètres régionaux renvoyé par un appel à \fBnewlocale\fP() ou \fBduplocale\fP(3). Si \fIlocobj\fP est \fBLC_GLOBAL_LOCALE\fP ou n’est pas un identifiant d’objet valable de paramètres régionaux, le résultat n’est pas défini. .PP Une fois qu’un objet de paramètres régionaux à été libéré, le programme ne devrait plus l’utiliser. .SH "VALEUR RENVOYÉE" En cas de réussite, \fBnewlocale\fP() renvoie un identifiant qui peut être utilisé dans les appels de \fBduplocale\fP(3), \fBfreelocale\fP() et d’autres fonctions qui prennent un argument \fIlocale_t\fP. En cas d’erreur, \fBnewlocale\fP() renvoie \fI(locale_t)\ 0\fP et définit \fIerrno\fP pour indiquer la cause de l’erreur. .SH ERREURS .TP \fBEINVAL\fP Au moins un bit de \fIcategory_mask\fP ne correspond pas à une catégorie valable de paramètres régionaux. .TP \fBEINVAL\fP \fIlocale\fP est NULL. .TP \fBENOENT\fP \fIlocale\fP n’est pas un pointeur de chaîne vers des paramètres régionaux valables. .TP \fBENOMEM\fP Pas assez de mémoire pour créer un objet de paramètres régionaux. .SH VERSIONS Les fonctions \fBnewlocale\fP() et \fBfreelocale\fP() sont apparues pour la première fois dans la version\ 2.3 de la bibliothèque\ C de GNU. .SH CONFORMITÉ POSIX.1\-2008. .SH NOTES Each locale object created by \fBnewlocale\fP() should be deallocated using \fBfreelocale\fP(). .SH EXEMPLES Le programme suivant prend jusqu’à deux arguments en ligne de commande, identifiant chacun des paramètres régionaux. Le premier argument est nécessaire et sert à définir le catégorie \fBLC_NUMERIC\fP dans un objet de paramètres régionaux créé avec \fBnewlocale\fP(). Le second argument est facultatif et sert à définir la catégorie \fBLC_TIME\fP de l’objet de paramètres régionaux s’il est présent. .PP Après création et initialisation de l’objet de paramètres régionaux, le programme l’applique en utilisant \fBuselocale\fP(3) et teste ensuite l’effet de la modification de paramètres régionaux en\ : .IP 1. 3 affichant un nombre à virgule avec une partie décimale. Cette sortie sera affectée par le réglage \fBLC_NUMERIC\fP. Dans de nombreux paramètres régionaux de langues européennes, le partie décimale du nombre est séparée de la partie entière par une virgule, plutôt que par un point\ ; .IP 2. affichant la date. Le format et la langue de sortie seront affectés par le réglage \fBLC_TIME\fP. .PP Les sessions suivantes d’interpréteur de commandes montrent des exemples d’exécution de ce programme. .PP Définir la catégorie \fBLC_NUMERIC\fP à \fIfr_FR\fP (français)\ : .PP .in +4n .EX $ \fB./a.out fr_FR\fP 123456,789 Fri Mar 7 00:25:08 2014 .EE .in .PP Définir la catégorie \fBLC_NUMERIC\fP à \fIfr_FR\fP (français) et la catégorie \fBLC_TIME\fP à \fIit_IT\fP (italien)\ : .PP .in +4n .EX $ \fB./a.out fr_FR it_IT\fP 123456,789 ven 07 mar 2014 00:26:01 CET .EE .in .PP Indiquer un réglage \fBLC_TIME\fP de chaîne vide, ce qui force la valeur à être prise des réglages de la variable d’environnement (qui est ici indiquée par \fImi_NZ\fP, maori de Nouvelle\-Zélande)\ : .PP .in +4n .EX $ LC_ALL=mi_NZ ./a.out fr_FR "" 123456,789 Te Paraire, te 07 o Poutū\-te\-rangi, 2014 00:38:44 CET .EE .in .SS "Source du programme" .EX #define _XOPEN_SOURCE 700 #include #include #include #include #define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \e } while (0) int main(int argc, char *argv[]) { char buf[100]; time_t t; size_t s; struct tm *tm; locale_t loc, nloc; if (argc < 2) { fprintf(stderr, "Utilisation\ : %s locale1 [locale2]\en", argv[0]); exit(EXIT_FAILURE); } /* Créer un nouvel objet de paramètres régionaux, prenant le réglage LC_NUMERIC des paramètres régionaux indiqués par argv[1] */ loc = newlocale(LC_NUMERIC_MASK, argv[1], (locale_t) 0); if (loc == (locale_t) 0) errExit("newlocale"); /* If a second command\-line argument was specified, modify the locale object to take the LC_TIME settings from the locale specified in argv[2]. We assign the result of this newlocale() call to \(aqnloc\(aq rather than \(aqloc\(aq, since in some cases, we might want to preserve \(aqloc\(aq if this call fails. */ if (argc > 2) { nloc = newlocale(LC_TIME_MASK, argv[2], loc); if (nloc == (locale_t) 0) errExit("newlocale"); loc = nloc; } /* Appliquer les paramètres régionaux nouvellement créé à ce thread */ uselocale(loc); /* Tester l’effet de LC_NUMERIC */ printf("%8.3f\en", 123456.789); /* Tester l’effet de LC_TIME */ t = time(NULL); tm = localtime(&t); if (tm == NULL) errExit("time"); s = strftime(buf, sizeof(buf), "%c", tm); if (s == 0) errExit("strftime"); printf("%s\en", buf); /* Libérer l’objet de paramètres régionaux */ uselocale(LC_GLOBAL_HANDLE); /* So \(aqloc\(aq is no longer in use */ freelocale(loc); exit(EXIT_SUCCESS); } .EE .SH "VOIR AUSSI" \fBlocale\fP(1), \fBduplocale\fP(3), \fBsetlocale\fP(3), \fBuselocale\fP(3), \fBlocale\fP(5), \fBlocale\fP(7) .SH COLOPHON Cette page fait partie de la publication\ 5.10 du projet \fIman\-pages\fP Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man\-pages/. .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier et David Prévot . Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .