Man page - duplocale(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

duplocale

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
STANDARDS
HISTORIQUE
NOTES
EXEMPLES
Source du programme
VOIR AUSSI
TRADUCTION

NOM

duplocale - Dupliquer un objet de paramÚtres régionaux

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <locale.h>

locale_t duplocale(locale_t locobj );

Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros (7)) :

duplocale () :
Depuis la glibc 2.10 :
_XOPEN_SOURCE >= 700
Avant la glibc 2.10 :
_GNU_SOURCE

DESCRIPTION

La fonction duplocale () créée un duplicata de l’objet de paramĂštres rĂ©gionaux rĂ©fĂ©rencĂ© par locobj .

Si locobj est LC_GLOBAL_LOCALE , duplocale () crée un objet de paramÚtres régionaux contenant un copie des paramÚtres régionaux génériques déterminés par setlocale (3).

VALEUR RENVOYÉE

En cas de rĂ©ussite, duplocale () renvoie un identifiant pour le nouvel objet de paramĂštres rĂ©gionaux. En cas d’erreur, il renvoie (locale_t) 0 et dĂ©finit errno pour indiquer l’erreur.

ERREURS

ENOMEM

Pas assez de mĂ©moire pour crĂ©er l’objet de paramĂštres rĂ©gionaux dupliquĂ©.

STANDARDS

POSIX.1-2008.

HISTORIQUE

glibc 2.3.

NOTES

La duplication de paramÚtres régionaux peut avoir les utilités suivantes :

-

crĂ©er une copie de l’objet de paramĂštres rĂ©gionaux dans lequel au moins une catĂ©gorie est Ă  modifier (en utilisant newlocale (3)) ;

-

obtenir un identifiant pour les paramĂštres rĂ©gionaux actuels qui peut servir dans d’autres fonctions permettant d’utiliser un identifiant de paramĂštres rĂ©gionaux, comme toupper_l (3). C’est rĂ©alisĂ© en appliquant duplocale () Ă  la valeur renvoyĂ©e par les appels suivants :

loc = uselocale((locale_t) 0);

Cette technique est nĂ©cessaire, parce que l’appel uselocale (3) prĂ©cĂ©dent pourrait renvoyer la valeur LC_GLOBAL_LOCALE , avec pour consĂ©quence un comportement non dĂ©fini si passĂ© Ă  des fonctions comme toupper_l (3). Un appel de duplocale () permet de s’assurer que la valeur LC_GLOBAL_LOCALE est convertie en objet de paramĂštres rĂ©gionaux utilisable. Consultez EXEMPLES ci-dessous.

Chaque objet de paramĂštres rĂ©gionaux créé par duplocale () devrait ĂȘtre dĂ©sallouĂ© en utilisant freelocale (3).

EXEMPLES

Le programme suivant utilise uselocale (3) et duplocale () pour obtenir un identifiant pour les paramĂštres rĂ©gionaux actuels qui sont ensuite passĂ©s Ă  toupper_l (3). Le programme prend un argument en ligne de commande, une chaĂźne de caractĂšres qui est convertie en majuscule et affichĂ©e sur la sortie standard. Voici un exemple d’utilisation :

$ ./a.out abc
ABC

Source du programme

#define _XOPEN_SOURCE 700
#include <ctype.h>
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \
} while (0)
int
main(int argc, char *argv[])
{
locale_t loc, nloc;
if (argc != 2) {
fprintf(stderr, "Utilisation : %s string\n", argv[0]);
exit(EXIT_FAILURE);
}
/* Cette suite est nécessaire, parce que uselocale() pourrait
renvoyer la valeur LC_GLOBAL_LOCALE, qui ne peut pas ĂȘtre
passée comme un argument à toupper_l() */
loc = uselocale((locale_t) 0);
if (loc == (locale_t) 0)
errExit("uselocale");
nloc = duplocale(loc);
if (nloc == (locale_t) 0)
errExit("duplocale");
for (char *p = argv[1]; *p; p++)
putchar(toupper_l(*p, nloc));
printf("\n");
freelocale(nloc);
exit(EXIT_SUCCESS);
}

VOIR AUSSI

freelocale (3), newlocale (3), setlocale (3), uselocale (3), locale (5), locale (7)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org> et David Prévot <david@tilapin.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 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 à debian-l10n-french@lists.debian.org .