Как установить переменную среды в 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,

Другие вопросы по тегам