Как установить переменную среды в ISO c99 Standard C без setenv()?
Я не могу использовать setenv()
от stdlib.h
для стандартного компилятора C99 так как он недоступен. Есть ли другая функция для установки переменной окружения в C99?
1 ответ
getenv
таким образом, является частью стандарта C90, который включен в C99, но setenv
соответствует только стандарту IEEE, поэтому его не следует включать в строго стандарт C99. Более того, соответствующий IEEE с 2001 года.
Это означает, что в C99 нет никакого стандартного способа сделать это, вы должны использовать специфичный для платформы код для установки env.
На справочной странице freebsd:
Функция getenv() соответствует ISO / IEC 9899: 1990 (
ISO C90''). The setenv(), putenv() and unsetenv() functions conforms to IEEE Std 1003.1-2001 (
POSIX.1 '').
setenv
, putenv
и так далее должны быть определены в любой системе POSIX.
Если вы используете Windows, см. Этот другой вопрос, который говорит о _putenv_s
,