std:: getenv
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Program termination | |||||||||||||||||||||
|
|||||||||||||||||||||
| Unreachable control flow | |||||||||||||||||||||
|
(C++23)
|
|||||||||||||||||||||
| Communicating with the environment | |||||||||||||||||||||
|
|||||||||||||||||||||
| Signals | |||||||||||||||||||||
| Signal types | |||||||||||||||||||||
| Non-local jumps | |||||||||||||||||||||
| Types | |||||||||||||||||||||
|
Определено в заголовочном файле
<cstdlib>
|
||
|
char
*
getenv
(
const
char
*
env_var
)
;
|
||
Выполняет поиск в
списке переменных окружения
предоставляемом хост-средой (операционной системой) строки, соответствующей C-строке, на которую указывает
env_var
и возвращает указатель на C-строку, связанную с найденным элементом списка переменных окружения.
|
Эта функция не обязана быть потокобезопасной. Другой вызов
|
(до C++11) |
|
Эта функция является потокобезопасной (её вызов из нескольких потоков не приводит к состоянию гонки данных) до тех пор, пока никакая другая функция не модифицирует окружение хоста. В частности, POSIX-функции
|
(начиная с 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 documentation
для
getenv
|