Как читать переменные окружения Linux в C ++ - PullRequest
31 голосов
/ 03 мая 2011

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

Ответы [ 3 ]

39 голосов
/ 03 мая 2011

Используйте функцию 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;
     }
}

, что позволяет избежать проблем, когда переменная окружения не существует, и позволяет использоватьC ++ строки легко запрашивать среду.Конечно, это не позволяет мне проверить, не существует ли переменная окружения, но в целом это не проблема в моем коде.

8 голосов
/ 03 мая 2011

То же, что и в C: использовать getenv (имя переменной).

2 голосов
/ 30 октября 2012

Вы можете просто использовать 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;
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...