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

std::getenv

Материал из cppreference.com
< cpp‎ | utility‎ | program
 
 
 
Коммунальные услуги Программа поддержки
Программа прекращения
Оригинал:
Program termination
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
abort
exit
quick_exit(C++11)
_Exit(C++11)
Взаимодействие с окружающей средой
Оригинал:
Communicating with the environment
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
getenv
Сигналы
Оригинал:
Signals
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Сигнал типа
Оригинал:
Signal types
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
SIGABRT
SIGFPE
SIGILL
SIGINT
SIGSEGV
SIGTERM
Нелокальные переходы
Оригинал:
Non-local jumps
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
setjmp
longjmp
Типы
Оригинал:
Types
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
jmp_buf
 
Определено в заголовочном файле <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 documentation for getenv