[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.syn#header:%3ccsetjmp%3e "17.14.3 Header synopsis [csetjmp.syn]") (nonlocal jumps),[](csignal.syn#header:%3ccsignal%3e "17.14.4 Header synopsis [csignal.syn]") (signal handling),[](cstdarg.syn#header:%3ccstdarg%3e "17.14.2 Header synopsis [cstdarg.syn]") (variable arguments), and[](cstdlib.syn#header:%3ccstdlib%3e "17.2.2 Header 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 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 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)