| duplocale(3) | Library Functions Manual | duplocale(3) |
duplocale - duplică un obiect de configurație regională
Biblioteca C standard (libc, -lc)
#include <locale.h>
locale_t duplocale(locale_t locobj);
duplocale():
Începând cu glibc 2.10
_XOPEN_SOURCE >= 700
Înainte de glibc 2.10:
_GNU_SOURCE
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).
Î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.
POSIX.1-2008.
glibc 2.3.
Duplicarea unei configurații regionale poate servi următoarelor scopuri:
loc = uselocale((locale_t) 0);
Fiecare obiect de configurație regională creat de duplocale() trebuie să fie eliberat cu ajutorul freelocale(3).
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
#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);
}
freelocale(3), newlocale(3), setlocale(3), uselocale(3), locale(5), locale(7)
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 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.
| 15 iunie 2024 | Pagini de manual de Linux 6.9.1 |