Namespaces
Variants

std:: getenv

From cppreference.net
Utilities library
헤더 파일에 정의됨 <cstdlib>
char * getenv ( const char * env_var ) ;

호스트 환경(운영 체제)에서 제공하는 환경 목록 을 검색하여 env_var 가 가리키는 C 문자열과 일치하는 문자열을 찾고, 일치하는 환경 목록 멤버와 연결된 C 문자열에 대한 포인터를 반환합니다.

이 함수는 스레드 안전성을 보장하지 않습니다. getenv 에 대한 다른 호출이나 POSIX 함수 setenv() , unsetenv() , putenv() 호출은 이전 호출에서 반환된 포인터를 무효화하거나 이전 호출로 얻은 문자열을 수정할 수 있습니다.

(until C++11)

다른 함수가 호스트 환경을 수정하지 않는 한 이 함수는 스레드 안전합니다(여러 스레드에서 호출해도 데이터 경쟁이 발생하지 않음). 특히 POSIX 함수 setenv() , unsetenv() , putenv() 는 동기화 없이 호출될 경우 데이터 경쟁을 유발합니다.

(since C++11)

getenv 가 반환하는 문자열을 수정하는 것은 정의되지 않은 동작을 유발합니다.

목차

매개변수

env_var - 검색할 환경 변수의 이름을 식별하는 null로 종료된 문자열

반환값

환경 변수의 값을 식별하는 문자열 또는 해당 변수를 찾을 수 없는 경우 null 포인터입니다.

참고 사항

POSIX 시스템에서 환경 변수 는 전역 변수 environ 를 통해서도 접근할 수 있으며, 이는 extern char ** environ ; 로 선언되어 <unistd.h> 에 정의되어 있습니다. 또한 main 함수 의 선택적 세 번째 인수인 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

참고 항목