Из ответов и комментариев на этот вопрос, я понимаю, что getenv
определяется стандартом С++, но setenv
- нет. И действительно, следующая программа
#include <cstdlib>
#include <iostream>
int main ( int argc, char **argv )
{
std::cout << std::getenv("PATH") << std::endl; // no errors
std::setenv("PATH", "/home/phydeaux/.local/bin:...", true); // error
}
не компилируется для меня (clang 3.9).
Почему одна из этих, казалось бы, дополняющих функций стандартизирована, но не другая?