[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.3 Header <csetjmp> synopsis [csetjmp.syn]") (nonlocal jumps),[<csignal>](csignal.syn#header:%3ccsignal%3e "17.14.4 Header <csignal> synopsis [csignal.syn]") (signal handling),[<cstdarg>](cstdarg.syn#header:%3ccstdarg%3e "17.14.2 Header <cstdarg> synopsis [cstdarg.syn]") (variable arguments),
and[<cstdlib>](cstdlib.syn#header:%3ccstdlib%3e "17.2.2 Header <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.2 Header <cstdlib> synopsis")) shall not introduce a data
race ([[res.on.data.races]](res.on.data.races "16.4.6.10 Data 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.1 Header <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)
