#include <locale.h>
locale_t uselocale( locale_t locale );
La fonction uselocale change la localisation du thread courant. Elle permet d'utiliser un objet
locale_t sans modifier la localisation globale du processus.
Si le paramètre vaut (locale_t) 0, la fonction ne modifie rien et retourne la localisation active
du thread. La valeur LC_GLOBAL_LOCALE permet de revenir à la localisation globale.
La fonction retourne la localisation précédemment active pour le thread courant, ou (locale_t) 0
en cas d'échec.
L'exemple suivant active temporairement une localisation explicite pour le thread courant.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#define _POSIX_C_SOURCE 200809L #include <locale.h> #include <stdio.h> #include <stdlib.h> int main() { locale_t locale = newlocale( LC_ALL_MASK, "C", (locale_t) 0 ); if ( locale == (locale_t) 0 ) { perror( "newlocale" ); return EXIT_FAILURE; } locale_t previous = uselocale( locale ); if ( previous == (locale_t) 0 ) { perror( "uselocale" ); freelocale( locale ); return EXIT_FAILURE; } puts( "Le thread utilise maintenant la localisation C." ); uselocale( previous ); freelocale( locale ); return EXIT_SUCCESS; } |
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :