Я не могу использовать setenv()
из stdlib.h
для стандартного компилятора C99, так как он недоступен. Есть ли другая функция для установки переменной среды в C99?
Как установить переменную среды в ISO c99 Standard C без setenv()?
comment
Нет функции c99 для изменения среды. Если вы сообщите нам свою конкретную систему, возможно, есть другой способ для конкретной платформы.
- person nos   schedule 13.01.2014
Ответы (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.
Если вы используете окна, см. этот другой вопрос, в котором говорится о _putenv_s
.
person
Geoffroy
schedule
13.01.2014