◐ Shell
clean mode source ↗

std::getenv — cppreference.com

Материал из cppreference.com

<tbody> </tbody>

Определено в заголовочном файле <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>, и через необязательный третий аргумент функции main.

Пример

#include <iostream>
#include <cstdlib>

int main()
{
    if(const char* env_p = std::getenv("PATH"))
        std::cout << "Ваша PATH равна: " << env_p << '\n';
}

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

Ваша PATH равна: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

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