Как установить переменную среды в ISO c99 Standard C без setenv()?

Я не могу использовать setenv() из stdlib.h для стандартного компилятора C99, так как он недоступен. Есть ли другая функция для установки переменной среды в C99?


person user3190470    schedule 13.01.2014    source источник
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