Недавно я добавил класс переменных среды для языка сценариев и использовал putenv(const char*)
для установки переменных среды в формате key=value
.Однако вместо этого автор изменил его на setenv(const char*, const char*)
.
Первоначально я использовал функцию putenv
, поскольку она упоминалась в другом ответе SO, что это был более независимый от платформы метод: https://stackoverflow.com/a/23073039/2423150
Но, по-видимому, Windows имеет setenv
: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/putenv?view=vs-2017
Итак, какой из них следует использовать?Язык сценариев предназначен для компиляции с некоторыми аспектами обратной совместимости - но насколько далеко был введен setenv
?Ссылка, указывающая на MSDN, на самом деле упоминает об устаревшей функции POSIX, а также о том, что версия документации указывает на VS 2017. Я немного запутался здесь ...