[개념질문] 환경변수에대해..
글쓴이: dummy999 / 작성시간: 토, 2003/09/13 - 9:35오후
유닉스의 프로그램구조에대해 알고싶습니다.
프로그램구조라고 하니까. 좀이상하네요..
일단 거두절미하고 본론으로 들갈께요.
유닉스에서 쉘과 응용플그램들은 상속의 개념을 많이 쓰고있는거같습니다.
전체적인 환경변수를 기반으로
각각의 유저디렉토리에 중복선언이가능하도록 되어있구요.
(이게 오버로딩이던가? 기억이 잘.. -_-? )
이건 유닉스의 대부분의 플그램들이 그렇게 하도록 되어있는거같습니다.
특히 서버류의 플그램들은 이런걸 잘지원하는거같더라구여.
그리고 제가 궁금한건 유닉스에서 LANG라는 환경변수가 있는데
이것역시 모든 app의 ./lang/ 와 연동되는건가요?
( 로케일이라고 써있던가? 어떤건 로케일이라고 써있던데.)
다시말해 응용플그램이 시작할때 환경변수의 LANG를 확인하고 그에맞는 환경파일을
로딩해주는건가요?
이것에대해 좀더 깊게 알고싶은데 참고할만한곳이나 또는 아시는분들의 쉬운설명부탁드립니다.
Forums:
LANG 와 로케일;
LANG 는 로케일 셋팅을 가지는 환경변수가 맞습니다.
단지, 여기서 말하는 로케일은 각 응용프로그램의 독자적인 것이 아닌,
glibc 에서 제공하는 로케일을 의미합니다.
어플리케이션에 따라서, glibc 포맷에 맞는 로케일 파일을 제공하는 녀석도
있지만, 자체적인 랭귀지 설정을 가지는 녀석도 있습니다.
glibc 에서 사용하는 로케일 관련 파일은 .po 라는 확장자를 가지고 있으며,
setlocale() 이라는 함수의 맨페이지를 보시면 조금 더 자세하게 아실수 있습니다.
(또한, gettext() 함수에 대한 정보도 도움이 될 것입니다.)
최근에 나오는 대부분의 i18n 지원 어플리케이션들은 LANG 환경변수에 의한
로케일 설정을 지원하는 추세입니다.
참고적으로,
glibc 2.1.3(?) 이전에는 LANG 환경변수의 셋팅을 해당 어플리케이션에서
setlocale() 함수로 지정하지 않고도 디폴트로 사용했었지만,
그 이후 glibc 버젼에서는 어플리케이션에서 setlocale() 로 로케일을 지정하지
않으면 디폴트로 C 로케일을 사용합니다.
C 로케일이란, C 언어의 기본 로케일이라기 보다는, 로케일중 'C' 라는 이름을
가진 로케일이 존재하는데, 그것을 사용한다는 의미입니다.
거의 모든 출력에 영어를 사용하며, 아무런 포맷팅도 지원하지 않는 로케일인듯 싶습니다.
댓글 달기