C locale(로캘)의 의미(export LANG=C)
최근의 RHEL이나 CentOS 의 기본 locale 은 utf8 이지만 예전 Linux나 AIX나 HP-UX 등의 OS init.d/script 를 보면 다음과 같은 부분이 있는 경우가 있다.
LANG=C export LANG
그간 application이 한글 메시지를 출력할 때 터미널이 한글을 지원 못해 깨져 보일 경우 무의식적으로 export LANG=C 를 입력하여 해결했는데 이게 정확히 무슨 의미인지, C가 맞는 locale 인지, 왜 D 나 E 가 아니라 C 인지 궁금해서 찾아보았다.
결론은 LANG 을 "C" 로 설정하는건 locale 을 끄는 의미이고 "C" 는 표준에 있는 locale name 이 맞다고 한다.
locale name 이 "C" 인것은 C 언어 표준중 7.11.1.1 The setlocale function 에 다음과 같이 지정되어 있기때문이다. (C 언어 표준에 있는 내용이라 "C" 인것 같다)
"A value of "C" for locale specifies the minimal environment for C translation;"