1 #ifndef _LOCALE_H 2 #define _LOCALE_H 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 #include <features.h> 9 10 #ifdef __cplusplus 11 #define NULL 0L 12 #else 13 #define NULL ((void*)0) 14 #endif 15 16 #define LC_CTYPE 0 17 #define LC_NUMERIC 1 18 #define LC_TIME 2 19 #define LC_COLLATE 3 20 #define LC_MONETARY 4 21 #define LC_MESSAGES 5 22 #define LC_ALL 6 23 24 struct lconv { 25 char *decimal_point; 26 char *thousands_sep; 27 char *grouping; 28 29 char *int_curr_symbol; 30 char *currency_symbol; 31 char *mon_decimal_point; 32 char *mon_thousands_sep; 33 char *mon_grouping; 34 char *positive_sign; 35 char *negative_sign; 36 char int_frac_digits; 37 char frac_digits; 38 char p_cs_precedes; 39 char p_sep_by_space; 40 char n_cs_precedes; 41 char n_sep_by_space; 42 char p_sign_posn; 43 char n_sign_posn; 44 char int_p_cs_precedes; 45 char int_p_sep_by_space; 46 char int_n_cs_precedes; 47 char int_n_sep_by_space; 48 char int_p_sign_posn; 49 char int_n_sign_posn; 50 }; 51 52 53 /** 54 * @ingroup locale 55 * @par Description: 56 * This API is used to selects the appropriate piece of the global locale, as specified by the category and locale arguments, 57 * and can be used to change or query the entire global locale or portions thereof. 58 * 59 * @attention 60 * <ul> 61 * <li>Not support.</li> 62 * </ul> 63 * 64 * @retval #NULL Failed to set, the input param invalid or the locale name not supported. 65 * @retval #char* The string associated with the specified category for the new locale if successful. 66 * 67 * @par Dependency: 68 * <ul><li>locale.h</li></ul> 69 * 70 * @see None 71 * 72 */ 73 char *setlocale (int, const char *); 74 struct lconv *localeconv(void); 75 76 77 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 78 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 79 80 #define __NEED_locale_t 81 82 #include <bits/alltypes.h> 83 84 #define LC_GLOBAL_LOCALE ((locale_t)-1) 85 86 #define LC_CTYPE_MASK (1<<LC_CTYPE) 87 #define LC_NUMERIC_MASK (1<<LC_NUMERIC) 88 #define LC_TIME_MASK (1<<LC_TIME) 89 #define LC_COLLATE_MASK (1<<LC_COLLATE) 90 #define LC_MONETARY_MASK (1<<LC_MONETARY) 91 #define LC_MESSAGES_MASK (1<<LC_MESSAGES) 92 #define LC_ALL_MASK 0x7fffffff 93 94 locale_t duplocale(locale_t); 95 void freelocale(locale_t); 96 locale_t newlocale(int, const char *, locale_t); 97 locale_t uselocale(locale_t); 98 99 #endif 100 101 102 #ifdef __cplusplus 103 } 104 #endif 105 106 #endif 107