В моей программе на С++ я хочу загрузить некоторые переменные среды из оболочки в некоторые строки. Как это можно сделать?
Как читать переменные среды Linux в С++
Ответ 1
Используйте функцию getenv() - см. http://en.cppreference.com/w/cpp/utility/program/getenv. Мне нравится обертывать это следующим образом:
string GetEnv( const string & var ) {
const char * val = ::getenv( var.c_str() );
if ( val == 0 ) {
return "";
}
else {
return val;
}
}
который позволяет избежать проблем, когда переменная окружения не существует, и позволяет легко использовать строки С++ для запроса среды. Конечно, это не позволяет мне проверить, существует ли переменная среды, но в целом это не проблема в моем коде.
Ответ 2
То же, что и в C: используйте getenv (variablename).
Ответ 3
Вы можете просто использовать char * env []
int main(int argc, char* argv[], char* env[]){
int i;
for(i=0;env[i]!=NULL;i++)
printf("%s\n",env[i]);
return 0;
}
здесь - это полная статья о вашей проблеме с моего сайта.