Пространства имён
Варианты
Действия

std::getenv

Материал из cppreference.com
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
Утилиты поддержки программ
Прерывание программы
(C++11)
(C++11)
Недостижимый поток управления
Взаимодействие с окружением
Сигналы
Типы сигналов
Нелокальные переходы
Типы
 
<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

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