[질문]extern char **environ 변수
글쓴이: 익명 사용자 / 작성시간: 월, 2002/03/04 - 2:55오전
소스
#include
int main(int argc, char *argv[])
{
int i;
char **ptr;
extern char **environ;
for (i=0; i
printf("argv[%d] %s\n", i, argv[i]);
for (ptr=environ; *ptr != 0; ptr++)
printf("%s\n", *ptr);
exit(0);
}
실행시켜보면 쉘환경변수=설정값 이런식으로 출력이 됩니다.
의문점은 어떻게 envrion 외부변수가 초기화 되지도 않았는데
어떻게 그렇게 동작하느냐하는 것입니다.
unistd.h에 다음고 같이 정의되어 있긴 하지만
extern char **environ
함수도 아니고 어떻게 그러수 있죠?
Forums:
Re: [질문]extern char **environ 변수
안녕하세요 ^^;
오래전이라 잘 기억나진 않지만 ...
main이 우리가 생각하는 수준에서는 프로그램의 starting point지만 실제
로는 그렇지 않습니다. 프로그램을 실행시키게 되면 다른 외부 모듈이 먼
저 실행되고 그 모듈에서 main을 호출하게 되어 있습니다. 그렇다면 외부
변수의 값이 set될 수도 있겠죠...
더 자세히 알고 싶으시다면 관련 서적을 참고하시면 될 듯 합니다.
즐거운 하루 되시기 바랍니다.
Re: [질문]extern char **environ 변수
부모 프로세스 즉 쉘에서 상속받는 겁니다.
댓글 달기