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 главной функции.

Пример

#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/cpp/utility/program/getenv

Spec-Zone.ru

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