Подтвердить что ты не робот

Как читать переменные среды Linux в С++

В моей программе на С++ я хочу загрузить некоторые переменные среды из оболочки в некоторые строки. Как это можно сделать?

4b9b3361

Ответ 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;
}

здесь - это полная статья о вашей проблеме с моего сайта.