Namespaces
Variants

std:: getenv

From cppreference.net
Utilities library
Определено в заголовочном файле <cstdlib>
char * getenv ( const char * env_var ) ;

Выполняет поиск в списке переменных окружения предоставляемом хост-средой (операционной системой) строки, соответствующей C-строке, на которую указывает env_var и возвращает указатель на C-строку, связанную с найденным элементом списка переменных окружения.

Эта функция не обязана быть потокобезопасной. Другой вызов getenv , а также вызов POSIX-функций setenv() , unsetenv() , и putenv() может инвалидировать указатель, возвращённый предыдущим вызовом, или модифицировать строку, полученную из предыдущего вызова.

(до C++11)

Эта функция является потокобезопасной (её вызов из нескольких потоков не приводит к состоянию гонки данных) до тех пор, пока никакая другая функция не модифицирует окружение хоста. В частности, POSIX-функции setenv() , unsetenv() , и putenv() приведут к состоянию гонки данных, если вызываются без синхронизации.

(начиная с C++11)

Изменение строки, возвращаемой функцией getenv , приводит к неопределённому поведению.

Содержание

Параметры

env_var - строка символов с нулевым завершением, определяющая имя переменной окружения для поиска

Возвращаемое значение

Строка символов, идентифицирующая значение переменной окружения, или нулевой указатель, если такая переменная не найдена.

Примечания

В системах POSIX переменные окружения также доступны через глобальную переменную environ , объявленную как extern char ** environ ; в <unistd.h> , и через необязательный третий аргумент, envp , в функции main .

Пример

#include <cstdlib>
#include <iostream>
int main()
{
    if (const char* env_p = std::getenv("PATH"))
        std::cout << "Your PATH is: " << env_p << '\n';
}

Возможный вывод:

Your PATH is: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Смотрите также

C documentation для getenv