std::getenv
| Определён в заголовочном файле <cstdlib>
|
||
| char* getenv( const char* env_var ); |
||
Ищет в списке переменных среды, возвращаемом окружением (операционной системой) строку, соответствующую указателю на строку в стиле Си, указанной в env_var, и возвращает указатель на строку в стиле Си, которая содержит значение найденной переменной среды.
|
Эта функция не гарантирует потокобезопасность. Другой вызов 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 << "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
|

