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
)
;
|
||
호스트 환경(운영 체제)에서 제공하는
환경 목록
을 검색하여
env_var
가 가리키는 C 문자열과 일치하는 문자열을 찾고, 일치하는 환경 목록 멤버와 연결된 C 문자열에 대한 포인터를 반환합니다.
|
이 함수는 스레드 안전성을 보장하지 않습니다.
|
(until C++11) |
|
다른 함수가 호스트 환경을 수정하지 않는 한 이 함수는 스레드 안전합니다(여러 스레드에서 호출해도 데이터 경쟁이 발생하지 않음). 특히 POSIX 함수
|
(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
참고 항목
|
C documentation
for
getenv
|