시스템 환경변수를 코드상으로 불러들이는 방법은 몇가지가 있다.
그중 하나는 C라이브러리 함수 getenv() 를 사용하면 된다.
필요헤더: stdlib.h
형태: char *getenv(const char *name);
사용방법은 다음과 같다.
매우 simple
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf( "TEMP1 = %sn", getenv( "TEMP1"));
}
다음은 WINAPI함수 - GetEnvironmentVariable() 를 이용하면 된다.
DWORD WINAPI GetEnvironmentVariable(
_In_opt_ LPCTSTR lpName,
_Out_opt_ LPTSTR lpBuffer,
_In_ DWORD nSize
);
lpName [in, optional] 환경변수이름
lpBuffer [out, optional]디렉토리를 담아올 버퍼
nSize [in] 널포인터를 포함한 버퍼의 크기
리턴값: 얻어온 디렉토리의 길이
https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms683188(v=vs.85).aspx
TCHAR _buffer[256] = { 0, };
DWORD res = GetEnvironmentVariable(
"TEMP",
_buffer,
256
);
환경변수를 못찾거나, 버퍼의 크기가 너무 작다면 에러가 난다 => 리턴값 0
에러를 좀 더 자세히 확인하고 싶다면, GetLastError() 를 호출하면 된다.
만약 찾기에 실패했다면 리턴값 203을 뱉어낼 것이다.
GetLastError() 참조 - http://honestgame.tistory.com/120
그외에 환경변수 설정하기
::SetEnvironmentVariable("TEMP", "C:\\tmp");
환경변수 지우기
::SetEnvironmentVariable("TEMP", NULL);
환경변수를 등록하고 종종 인식이 안되는 경우도 있는데,
그럴때는 재부팅을 하면 된다.
끝.
'프로그래밍 > C++' 카테고리의 다른 글
[링크] 최고의 C++ 강의 5개 (0) | 2017.02.06 |
---|---|
자료구조 SearchTime - map,set,unordered_map (0) | 2017.01.11 |
GetLastError() - 리턴코드 (에러값) (0) | 2017.01.06 |
수치적분 사다리꼴 C 코드 (0) | 2016.10.05 |
char 배열 초기화 방법 (0) | 2016.09.29 |