[c.locales] # 28 Text processing library [[text]](./#text) ## 28.3 Localization library [[localization]](localization#c.locales) ### 28.3.5 C library locales [c.locales] #### [28.3.5.1](#clocale.syn) Header synopsis [[clocale.syn]](clocale.syn) [🔗](#lib:lconv) namespace std {struct lconv; char* setlocale(int category, const char* locale); lconv* localeconv();}#define NULL *see [[support.types.nullptr]](support.types.nullptr "17.2.3 Null pointers")*#define LC_ALL *see below*#define LC_COLLATE *see below*#define LC_CTYPE *see below*#define LC_MONETARY *see below*#define LC_NUMERIC *see below*#define LC_TIME *see below* [1](#clocale.syn-1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L4920) The contents and meaning of the header are the same as the C standard library header [](support.c.headers.general#header:%3clocale.h%3e "17.15.1 General [support.c.headers.general]")[.](#clocale.syn-1.sentence-1) #### [28.3.5.2](#clocale.data.races) Data races [[clocale.data.races]](clocale.data.races) [1](#clocale.data.races-1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L4926) Calls to the function setlocale may introduce a data race ([[res.on.data.races]](res.on.data.races "16.4.6.10 Data race avoidance")) with other calls to setlocale or with calls to the functions listed in Table [103](#tab:setlocale.data.races "Table 103: Potential setlocale data races")[.](#clocale.data.races-1.sentence-1) See also: ISO/IEC 9899:2024, 7.11 Table [103](#tab:setlocale.data.races) — Potential setlocale data races [[tab:setlocale.data.races]](./tab:setlocale.data.races) | [🔗](#tab:setlocale.data.races-row-1)
fprintf | isprint | iswdigit | localeconv | tolower | | --- | --- | --- | --- | --- | | [🔗](#tab:setlocale.data.races-row-2)
fscanf | ispunct | iswgraph | mblen | toupper | | [🔗](#tab:setlocale.data.races-row-3)
isalnum | isspace | iswlower | mbstowcs | towlower | | [🔗](#tab:setlocale.data.races-row-4)
isalpha | isupper | iswprint | mbtowc | towupper | | [🔗](#tab:setlocale.data.races-row-5)
isblank | iswalnum | iswpunct | setlocale | wcscoll | | [🔗](#tab:setlocale.data.races-row-6)
iscntrl | iswalpha | iswspace | strcoll | wcstod | | [🔗](#tab:setlocale.data.races-row-7)
isdigit | iswblank | iswupper | strerror | wcstombs | | [🔗](#tab:setlocale.data.races-row-8)
isgraph | iswcntrl | iswxdigit | strtod | wcsxfrm | | [🔗](#tab:setlocale.data.races-row-9)
islower | iswctype | isxdigit | strxfrm | wctomb |