[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 <clocale> 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 <clocale> are the same as the C standard library header [<locale.h>](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)<br>fprintf | isprint | iswdigit | localeconv | tolower |
| --- | --- | --- | --- | --- |
| [ð](#tab:setlocale.data.races-row-2)<br>fscanf | ispunct | iswgraph | mblen | toupper |
| [ð](#tab:setlocale.data.races-row-3)<br>isalnum | isspace | iswlower | mbstowcs | towlower |
| [ð](#tab:setlocale.data.races-row-4)<br>isalpha | isupper | iswprint | mbtowc | towupper |
| [ð](#tab:setlocale.data.races-row-5)<br>isblank | iswalnum | iswpunct | setlocale | wcscoll |
| [ð](#tab:setlocale.data.races-row-6)<br>iscntrl | iswalpha | iswspace | strcoll | wcstod |
| [ð](#tab:setlocale.data.races-row-7)<br>isdigit | iswblank | iswupper | strerror | wcstombs |
| [ð](#tab:setlocale.data.races-row-8)<br>isgraph | iswcntrl | iswxdigit | strtod | wcsxfrm |
| [ð](#tab:setlocale.data.races-row-9)<br>islower | iswctype | isxdigit | strxfrm | wctomb |
