Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

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

SYNOPSIS

       #include <locale.h>

       locale_t duplocale(locale_t locobj);

   Exigences    de    macros    de   test   de   fonctionnalités   pour   la   glibc   (consultez
   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 la
       cause de l’erreur.

ERREURS

       ENOMEM Pas assez de mémoire pour créer l’objet de paramètres régionaux dupliqué.

VERSIONS

       La fonction duplocale() est apparue pour la  première  fois  dans  la  version 2.3  de  la
       bibliothèque C de GNU.

CONFORMITÉ

       POSIX.1-2008.

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 EXEMPLE ci-dessous.

       Chaque  objet  de  paramètres  régionaux  créé  par  duplocale() devrait être désalloué en
       utilisant freelocale(3).

EXEMPLE

       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 <stdio.h>
       #include <stdlib.h>
       #include <locale.h>

       #define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \
                               } while (0)

       int
       main(int argc, char *argv[])
       {
           locale_t loc, nloc;
           char *p;

           if (argc != 2) {
               fprintf(stderr, "Utilisation : %s chaîne\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 (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)

COLOPHON

       Cette  page  fait partie de la publication 3.65 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>  ou  par  un  rapport  de  bogue   sur   le   paquet
       manpages-fr.

       Vous  pouvez  toujours  avoir  accès  à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».