반응형
모든 환경 변수를 C / C ++로 인쇄
C 및 / 또는 C ++의 모든 환경 변수 목록을 얻으려면 어떻게해야합니까?
getenv환경 변수를 읽는 데 사용할 수 있다는 것을 알고 있지만 어떻게 모두 나열합니까?
환경 변수를 사용할 수있게된다 main()는 AS envp인자 - 스트링의 널 종결 배열 :
int main(int argc, char **argv, char **envp)
{
for (char **env = envp; *env != 0; env++)
{
char *thisEnv = *env;
printf("%s\n", thisEnv);
}
return 0;
}
#include<stdio.h>
extern char **environ;
int main() {
int i = 1;
char *s = *environ;
for (; s; i++) {
printf("%s\n", s);
s = *(environ+i);
}
return 0;
}
확인해야한다고 생각합니다 environ. "man environ"을 사용하십시오.
컴파일러는 추가 환경 변수 정보를 제공하는 기본 함수에 비표준 확장을 제공 할 수 있습니다. MS 컴파일러와 대부분의 Unix 버전에는 다음 버전의 main이 있습니다.
int main (int argc, char **argv, char **envp)
세 번째 매개 변수는 환경 변수 정보입니다. 디버거를 사용하여 형식이 무엇인지 확인합니다. 아마도 null로 끝나는 문자열 포인터 목록 일 것입니다.
int main(int argc, char **argv, char** env) {
while (*env)
printf("%s\n", *env++);
return 0;
}
int main(int argc, char* argv[], char* envp[]) {
// loop through envp to get all environments as "NAME=val" until you hit NULL.
}
대부분의 환경에서 메인을 다음과 같이 선언 할 수 있습니다.
main(int argc,char* argv[], char** envp)
envp는 모든 환경 문자열을 포함합니다.
LPTCH WINAPI GetEnvironmentStrings(void);
http://msdn.microsoft.com/en-us/library/ms683187%28VS.85%29.aspx
편집 : Windows에서만 작동합니다.
Windows 운영 체제에서 실행중인 경우 GetEnvironmentStrings()null로 끝나는 문자열 블록을 반환하는 호출 할 수도 있습니다.
참고 URL : https://stackoverflow.com/questions/2085302/printing-all-environment-variables-in-cc
반응형
'IT TIP' 카테고리의 다른 글
| C #은 왜 C처럼 로컬 정적 변수를 지원하지 않습니까? (0) | 2020.11.25 |
|---|---|
| 벡터를 반복하고 특정 항목을 제거합니다. (0) | 2020.11.25 |
| 3D 벡터의 회전? (0) | 2020.11.25 |
| iOS UICollectionView 프로토 타입 셀 크기 속성이 무시 됨 (0) | 2020.11.25 |
| 장치 너비와 높이를 얻는 방법은 무엇입니까? (0) | 2020.11.25 |