이러한 변수를 설정하는 방법에 대한 질문은 많지만 작동 방식에 대한 질문은 없습니다.
터미널에 입력 하면 locale
여러 변수가 표시됩니다.
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
그러나 이들은 시스템에 존재하지 않습니다. echo를 실행하면 빈 문자열이 반환됩니다 echo $LC_MONETARY
.
유틸리티가 사용자 정의할 수 있고 기본값을 무시하도록 설정할 수 있는 일부 데이터베이스 및 인쇄 환경 변수를 읽고 있다고 가정합니까?
- 어떤 데이터베이스를 읽고 있나요? 설정을 재정의하기 위해 이러한 변수를 사용하지 않고 직접 편집할 수 있습니까?
- 이러한 변수가 설정된 경우 해당 변수를 사용하는 시스템 구성 요소는 무엇입니까? 사용자 공간 프로그램에서 사용됩니까?
locale
다른 유틸리티와 함께 제공되는 패키지의 일부입니까 ?- 이러한 변수는 표준의 일부이며 모든 분포에서 발견됩니까?
LC_ 변수 및 로케일 유틸리티를 설명하는 문서를 참조해 주시면 감사하겠습니다. 내가 찾은 대부분의 웹 기사에서는 사용 방법을 설명하지만 로케일 시스템의 디자인/아키텍처에 대해서는 설명하지 않습니다.
답변1
이 값은 데이터베이스에서 읽혀지지 않습니다.
locale
해당 가능우선순위 규칙:LANG
설정된 경우 설정되지 않은 변수의 기본값을 결정하고LC_
,LC_ALL
설정된 경우 모든 값을 재정의합니다. 예를 들어,LANG
및 를LC_CTYPE
명시적으로 설정en_GB.UTF-8
하면 모든 값이locale
표시되지만 로 설정하면 모든 값 이 표시됩니다.en_GB.UTF-8
LANG
fr_FR.UTF-8
fr_FR.UTF-8
와는 별개로LC_CTYPE
.변수를 읽는 방법은 다음과 같습니다.
setlocale
기능, 로케일에 관심이 있는 경우 어떤 프로그램을 호출해야 하는지.locale
일반적으로 C 라이브러리의 일부입니다.변수는 다음에 정의되어 있습니다.POSIX, 대부분의 Unix 스타일 시스템에서 발견되는 공통 인터페이스를 정의하는 표준입니다. 일부 시스템(또는 C 라이브러리)에는 확장 기능이 있습니다.GNU C 라이브러리는 많은 비표준 로케일 범주를 정의합니다.예를 들어
LC_ADDRESS
.
당신은 또한 볼 수 있습니다LANG=C와 LC_ALL=C의 차이점은 무엇입니까?그리고지역 설정 프로그램은 어떻게 작동하나요?