duplocale(3) Library Functions Manual duplocale(3) NUME duplocale - duplica un obiect de configuraie regionala BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include locale_t duplocale(locale_t locobj); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): duplocale(): Incepand cu glibc 2.10 _XOPEN_SOURCE >= 700 Inainte de glibc 2.10: _GNU_SOURCE DESCRIERE Funcia duplocale() creeaza un duplicat al obiectului parametrului regional la care se face referire prin locobj. Daca locobj este LC_GLOBAL_LOCALE, duplocale() creeaza un obiect de configuraie regionala care conine o copie a parametrului regional global determinat de setlocale(3). VALOAREA RETURNATA In caz de succes, duplocale() returneaza un gestionar pentru noul obiect de configuraie regionala. In caz de eroare, returneaza (locale_t) 0 i configureaza errno pentru a indica eroarea. ERORI-IEIRE ENOMEM Memorie insuficienta pentru a crea obiectul de configuraie regionala duplicat. STANDARDE POSIX.1-2008. ISTORIC glibc 2.3. NOTE Duplicarea unei configuraii regionale poate servi urmatoarelor scopuri: o Pentru a crea o copie a unui obiect configuraie regionala in care una sau mai multe categorii urmeaza sa fie modificate (utilizand newlocale(3)). o Pentru a obine un gestionar pentru configuraia regionala curenta, care poate fi utilizat in alte funcii care utilizeaza un gestionar de configuraie regionala, cum ar fi toupper_l(3). Acest lucru se face prin aplicarea duplocale() la valoarea returnata de urmatorul apel: loc = uselocale((locale_t) 0); Aceasta tehnica este necesara, deoarece apelul uselocale(3) de mai sus poate returna valoarea LC_GLOBAL_LOCALE, ceea ce duce la un comportament nedefinit daca este transmis unor funcii precum toupper_l(3). Apelul duplocale() poate fi utilizat pentru a se asigura ca valoarea LC_GLOBAL_LOCALE este convertita intr-un obiect de configuraie regionala utilizabil. A se vedea seciunea EXEMPLE, de mai jos. Fiecare obiect de configuraie regionala creat de duplocale() trebuie sa fie eliberat cu ajutorul freelocale(3). EXEMPLE Programul de mai jos utilizeaza uselocale(3) i duplocale() pentru a obine un gestionar pentru parametrul regional curent, care este apoi transmis la toupper_l(3). Programul primete un argument de linie de comanda, un ir de caractere care este convertit in majuscule i afiat la ieirea standard. Un exemplu de utilizare a acestui program este urmatorul: $ ./a.out abc; ABC Sursa programului #define _XOPEN_SOURCE 700 #include #include #include #include #include int main(int argc, char *argv[]) { locale_t loc, nloc; if (argc != 2) { fprintf(stderr, "Utilizare: %s ir\n", argv[0]); exit(EXIT_FAILURE); } /* Aceasta secvena este necesara, deoarece uselocale() ar putea returna valoarea LC_GLOBAL_LOCALE, care nu poate fi transmisa ca argument pentru toupper_l(). */*/ loc = uselocale((locale_t) 0); if (loc == (locale_t) 0) err(EXIT_FAILURE, "uselocale"); nloc = duplocale(loc); if (nloc == (locale_t) 0) err(EXIT_FAILURE, "duplocale"); for (char *p = argv[1]; *p; p++) putchar(toupper_l(*p, nloc)); printf("\n"); freelocale(nloc); exit(EXIT_SUCCESS); } CONSULTAI I freelocale(3), newlocale(3), setlocale(3), uselocale(3), locale(5), locale(7) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.18 8 februarie 2026 duplocale(3)