Files
cppdraft_translate/cppdraft/support/runtime/general.md
2025-10-25 03:02:53 +03:00

42 lines
1.9 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[support.runtime.general]
# 17 Language support library [[support]](./#support)
## 17.14 Other runtime support [[support.runtime]](support.runtime#general)
### 17.14.1 General [support.runtime.general]
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/support.tex#L6346)
Headers[<csetjmp>](csetjmp.syn#header:%3ccsetjmp%3e "17.14.3Header <csetjmp> synopsis[csetjmp.syn]") (nonlocal jumps),[<csignal>](csignal.syn#header:%3ccsignal%3e "17.14.4Header <csignal> synopsis[csignal.syn]") (signal handling),[<cstdarg>](cstdarg.syn#header:%3ccstdarg%3e "17.14.2Header <cstdarg> synopsis[cstdarg.syn]") (variable arguments),
and[<cstdlib>](cstdlib.syn#header:%3ccstdlib%3e "17.2.2Header <cstdlib> synopsis[cstdlib.syn]") (runtime environment getenv, system),
provide further compatibility with C code[.](#1.sentence-1)
[2](#2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/support.tex#L6357)
Calls to the functiongetenv ([[cstdlib.syn]](cstdlib.syn "17.2.2Header <cstdlib> synopsis")) shall not introduce a data
race ([[res.on.data.races]](res.on.data.races "16.4.6.10Data race avoidance")) provided that nothing modifies the environment[.](#2.sentence-1)
[*Note [1](#note-1)*:
Calls to the POSIX functionssetenv andputenv modify the
environment[.](#2.sentence-2)
— *end note*]
[3](#3)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/support.tex#L6371)
A call to the [setlocale](clocale.syn#lib:setlocale "28.3.5.1Header <clocale> synopsis[clocale.syn]") function
may introduce a data race with other
calls to the setlocale function or with calls to functions that are
affected by the current C locale[.](#3.sentence-1)
The implementation shall behave as if no
library function other than locale::global calls the setlocale function[.](#3.sentence-2)