Spec-Zone.ru › C++

std::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>, и через необязательный третий аргумент, 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 для getenv

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/program/getenv

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API