환경변수에대한 이해..(안됨..)
글쓴이: 익명 사용자 / 작성시간: 목, 2002/03/07 - 10:17오전
보통 메인함수에서 인자를 받을때 commmand line argument를 이용해서 받
는경우가있고..이런경우를 예로 들면 ...
int main(int argc, char *argv[])형식으로 가게되는데..아마 세번째
argument가 환경변수를 나타낸다고 하는데 정확히 왜사용하는지..이해가
되지않거든요..어떤 프로그램을 보는데 execv
("/bin/....","xx","xxx","xx",NULL)이런식의 표현이 있는데...생성된 프
로세스를 어떻게 exec하는지 궁금합니당...
Forums:
Re: 환경변수에대한 이해..(안됨..)
환경변수는 말그대로 시스템과 사용자의 환경을 각종 어플리케이션에
알려주기 위해서 사용됩니다.
setenv(3), getenv(3)을 참고해보세요.
exec 계열의 함수가 호출되면, 환경변수 SHELL 의 값을
읽어들입니다. SHELL 에는 사용자가 사용하는 쉘의 풀경로가
들어있습니다.
(echo $SHELL 로 확인하실수 있습니다.)
그후 해당 shell 을 이용해서 execl 에 인자로 주어진 프로그램을
실행시키는 방식을 사용합니다.
만약 $SHELL 이 /bin/sh 라면
execl("/bin/vi", "vi", 0);
는 /bin/sh -c /bin/vi 이런식으로 실행됩니다.
exec 계열을 이용해서
명령을 실행하면, 별도의 프로세스가 생기는게 아니고
현재의 실행되는 프로세스의 이미지를 덮어 쓰게 됩니다.
환경변수에 대한 내용은 http//www.joinc.co.kr/article.php?sid=8 에 제가
좀정리한게 있습니다. 참고가 되면 좋겠네요..
그럼.. 좋은 하루 되세요.
댓글 달기