46 lines
2.6 KiB
Markdown
46 lines
2.6 KiB
Markdown
[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 |
|