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

std::getenv

Материал из cppreference.com
< cpp‎ | utility‎ | program
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, 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)
Недостижимый поток управления
Взаимодействие с окружением
getenv
Сигналы
Типы сигналов
Нелокальные перех��ды
Типы
 
Определено в заголовочном файле <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

[править] Смотрите также