C에서 쉘 환경변수를 얻어 오는 방법
글쓴이: mypwd / 작성시간: 수, 2003/04/02 - 4:41오후
getenv() 함수로 환경변수를 얻어오려고 하는데 잘 되지 않아서 문의드립니다.
#env 와
#set 을 해보면 출력되는 결과가 다릅니다.
getenv()를 쓰면 env로 출력되는 것들은 값을 얻을 수 있는데 반해서
set에서만 보이는 변수들은 값을 얻을 수가 없습니다.
main(int argc, char **argv, char **envp)
로 얻어도 마찬가지입니다.
bash 소스를 보면 getenv("BASH_ENV")로 쉘 변수정보를 읽어 오던데
이것 역시 제 환경에서는 보이지 않았습니다.
어떻게 하면 쉘 환경변수들을 모두 읽어 올수 있을까요?
Forums:
popen 이란걸 사용해보세요..system 과 같은 기능인데..
popen 이란걸 사용해보세요..
system 과 같은 기능인데.. stdout 으로 나가는 결과를 파일로 읽어 올수 있지요..
set A=BBB 한것은 현재 쉘에서만 사용되는 로컬변수 export
set A=BBB 한것은 현재 쉘에서만 사용되는 로컬변수
export A 하면 환경변수로서 CHILD 에게 전달 될것 같습니다.
프로그램 중간에 system("/bin/sh");
를 실행하셔서 set 값을 확인해 보세요. 아마 없을것 같은데...
내 자식들도 나처럼 !!
댓글 달기