plucky (3) duplocale.3.gz

Provided by: manpages-ro-dev_4.25.1-1_all bug

NUME

       duplocale - duplică un obiect de configurație regională

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <locale.h>

       locale_t duplocale(locale_t locobj);

   Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

       duplocale():
           Începând cu glibc 2.10
               _XOPEN_SOURCE >= 700
           Înainte de glibc 2.10:
               _GNU_SOURCE

DESCRIERE

       Funcția duplocale() creează un duplicat al obiectului parametrului regional la care se face referire prin
       locobj.

       Dacă locobj este LC_GLOBAL_LOCALE, duplocale() creează un obiect de configurație regională care conține o
       copie a parametrului regional global determinat de setlocale(3).

VALOAREA RETURNATĂ

       În  caz  de  succes, duplocale() returnează un gestionar pentru noul obiect de configurație regională. În
       caz de eroare, returnează (locale_t) 0 și configurează errno pentru a indica eroarea.

ERORI-IEȘIRE

       ENOMEM Memorie insuficientă pentru a crea obiectul de configurație regională duplicat.

STANDARDE

       POSIX.1-2008.

ISTORIC

       glibc 2.3.

NOTE

       Duplicarea unei configurații regionale poate servi următoarelor scopuri:

       •  Pentru a crea o copie a unui obiect configurație regională în care una sau mai multe categorii urmează
          să fie modificate (utilizând newlocale(3)).

       •  Pentru  a  obține  un  gestionar pentru configurația regională curentă, care poate fi utilizat în alte
          funcții care utilizează un gestionar de configurație regională, cum ar fi toupper_l(3). Acest lucru se
          face prin aplicarea duplocale() la valoarea returnată de următorul apel:

              loc = uselocale((locale_t) 0);

          Această  tehnică  este  necesară,  deoarece  apelul  uselocale(3)  de  mai  sus poate returna valoarea
          LC_GLOBAL_LOCALE, ceea ce duce la un comportament nedefinit dacă este  transmis  unor  funcții  precum
          toupper_l(3).  Apelul  duplocale()  poate fi utilizat pentru a se asigura că valoarea LC_GLOBAL_LOCALE
          este convertită într-un obiect de configurație regională utilizabil. A se vedea secțiunea EXEMPLE,  de
          mai jos.

       Fiecare  obiect  de  configurație  regională  creat  de  duplocale()  trebuie să fie eliberat cu ajutorul
       freelocale(3).

EXEMPLE

       Programul de mai jos  utilizează  uselocale(3)  și  duplocale()  pentru  a  obține  un  gestionar  pentru
       parametrul  regional  curent,  care este apoi transmis la toupper_l(3). Programul primește un argument de
       linie de comandă, un șir de caractere care este convertit în majuscule și afișat la ieșirea standard.  Un
       exemplu de utilizare a acestui program este următorul:

           $ ./a.out abc
           ABC

   Sursa programului

       #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, "Utilizare: %s șir\n", argv[0]);
               exit(EXIT_FAILURE);
           }

           /* Această secvență este necesară, deoarece uselocale() ar putea
              returna valoarea LC_GLOBAL_LOCALE, care nu poate fi transmisă
              ca argument pentru 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);
       }

CONSULTAȚI ȘI

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

TRADUCERE

       Traducerea    în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel   Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența  publică  generală  GNU  Versiunea   3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  sau  o  versiune  ulterioară  cu privire la condiții privind
       drepturile de autor.  NU se asumă NICIO RESPONSABILITATE.

       Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți  un  e-mail  la  ⟨translation-team-
       ro@lists.sourceforge.net⟩.