_create_locale
, _wcreate_locale
Tworzy obiekt ustawień regionalnych.
Składnia
_locale_t _create_locale(
int category,
const char *locale
);
_locale_t _wcreate_locale(
int category,
const wchar_t *locale
);
Parametry
category
Kategoria.
locale
Specyfikator ustawień regionalnych.
Wartość zwracana
Jeśli podano prawidłowe locale
i category
są podane, funkcje zwracają określone ustawienia regionalne jako _locale_t
obiekt. Bieżące ustawienia regionalne programu nie są zmieniane.
Uwagi
Funkcja _create_locale
umożliwia utworzenie obiektu reprezentującego niektóre ustawienia specyficzne dla regionu do użycia w wersjach specyficznych dla ustawień regionalnych wielu funkcji CRT (funkcje z sufiksem _l
). Zachowanie jest podobne do setlocale
, z tą różnicą, że zamiast stosować określone ustawienia regionalne do bieżącego środowiska, ustawienia są zapisywane w _locale_t
strukturze, która jest zwracana. Struktura _locale_t
powinna zostać uwolniona, _free_locale
gdy nie jest już potrzebna.
_wcreate_locale
jest wersją szerokoznakową ; _create_locale
argument to locale
_wcreate_locale
ciąg o szerokim znaku. _wcreate_locale
i _create_locale
zachowywać się identycznie inaczej.
Argument category
określa części zachowania specyficznego dla ustawień regionalnych, których dotyczy problem. Flagi używane dla category
i części programu, które mają wpływ, są jak pokazano w poniższej tabeli:
category flaga |
Wpływa |
---|---|
LC_ALL |
Wszystkie kategorie, jak wymieniono poniżej. |
LC_COLLATE |
Funkcje strcoll , , wcscoll _strncoll _wcsicoll _stricoll _strnicoll _wcsncoll strxfrm , _wcsnicoll , i .wcsxfrm |
LC_CTYPE |
Funkcje obsługi znaków (z wyjątkiem isdigit , isxdigit , mbstowcs i mbtowc , które nie mają wpływu). |
LC_MONETARY |
Informacje o formatowaniu pieniężnym zwracane przez localeconv funkcję . |
LC_NUMERIC |
Znak dziesiętny dla sformatowanych procedur wyjściowych (takich jak printf ), dla procedur konwersji danych i dla informacji formatowania niepieniężnego zwracanych przez localeconv . Oprócz znaku LC_NUMERIC separatora dziesiętnego ustawia separator tysięcy i ciąg kontrolny grupowania zwracany przez localeconv . |
LC_TIME |
Funkcje strftime i wcsftime . |
Ta funkcja weryfikuje category
parametry i locale
. Jeśli parametr kategorii nie jest jedną z wartości podanych w poprzedniej tabeli lub jeśli locale
jest NULL
, funkcja zwraca NULL
wartość .
Argument locale
jest wskaźnikiem do ciągu, który określa ustawienia regionalne. Aby uzyskać informacje o formacie argumentu locale
, zobacz Nazwy ustawień regionalnych, Języki i Ciągi kraju/regionu.
Argument locale
może przyjmować kilka rodzajów wartości: nazwę ustawień regionalnych, ciąg języka, ciąg języka i kod kraju/regionu, stronę kodową lub kombinację ciągu językowego, kodu kraju/regionu i strony kodowej. Zestaw (dostępnych nazw ustawień regionalnych, języków, kodów kraju/regionu i stron kodu) obejmuje wszystkie obsługiwane przez interfejs API równoważenia obciążenia sieciowego systemu Windows. Zestaw obsługiwanych nazw _create_locale
ustawień regionalnych jest opisany w temacie Nazwy ustawień regionalnych, Języki i Ciągi kraju/regionu. Zestaw ciągów języka i kraju/regionu obsługiwanych przez _create_locale
program jest wymieniony w ciągach języka i ciągach kraju/regionu.
Aby uzyskać więcej informacji na temat ustawień regionalnych, zobacz setlocale
, _wsetlocale
.
Poprzednia nazwa tej funkcji __create_locale
(z dwoma wiodącymi podkreśleniami) jest przestarzała.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
Procedura | Wymagany nagłówek |
---|---|
_create_locale |
<locale.h> |
_wcreate_locale |
<locale.h> lub <wchar.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// crt_create_locale.c
// Sets the current locale to "de-CH" using the
// setlocale function and demonstrates its effect on the strftime
// function.
#include <stdio.h>
#include <locale.h>
#include <time.h>
int main(void)
{
time_t ltime;
struct tm thetime;
unsigned char str[100];
_locale_t locale;
// Create a locale object representing the German (Switzerland) locale
locale = _create_locale(LC_ALL, "de-CH");
time (<ime);
_gmtime64_s(&thetime, <ime);
// %#x is the long date representation, appropriate to
// the current locale
if (!_strftime_l((char *)str, 100, "%#x",
(const struct tm *)&thetime, locale))
{
printf("_strftime_l failed!\n");
}
else
{
printf("In de-CH locale, _strftime_l returns '%s'\n", str);
}
_free_locale(locale);
// Create a locale object representing the default C locale
locale = _create_locale(LC_ALL, "C");
time(<ime);
_gmtime64_s(&thetime, <ime);
if (!_strftime_l((char *)str, 100, "%#x",
(const struct tm *)&thetime, locale))
{
printf("_strftime_l failed!\n");
}
else
{
printf("In 'C' locale, _strftime_l returns '%s'\n", str);
}
_free_locale(locale);
}
In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'
Zobacz też
Nazwy ustawień regionalnych, języki i ciągi kraj/region
Ciągi językowe
Ciągi kraju/regionu
_free_locale
_configthreadlocale
setlocale
ustawienia regionalne
localeconv
_mbclen
, , mblen
_mblen_l
strlen
, , wcslen
, _mbslen
, _mbslen_l
, , _mbstrlen
_mbstrlen_l
mbstowcs
, _mbstowcs_l
mbtowc
, _mbtowc_l
_setmbcp
setlocale
, _wsetlocale
strcoll
, funkcje
strftime
, , wcsftime
, , _strftime_l
_wcsftime_l
strxfrm
, , wcsxfrm
, , _strxfrm_l
_wcsxfrm_l
wcstombs
, _wcstombs_l
wctomb
, _wctomb_l