NAME
uselocale - 호출 스레드의 로캘 설정하기/얻기
SYNOPSIS
#include <locale.h>
locale_t uselocale(locale_t newloc);
glibc 기능 확인 매크로 요건 (feature_test_macros(7) 참고):
uselocale():-
- glibc 2.10부터:
_XOPEN_SOURCE >= 700- glibc 2.10 전:
_GNU_SOURCE
DESCRIPTION
uselocale() 함수는 호출 스레드의 현재 로캘을 설정하고 이전 로캘을 반환한다. uselocale() 호출이 성공한 후 이 스레드에서 로캘에 의존하는 함수들을 호출하면 로캘을 newloc으로 설정한 것처럼 동작하게 된다.
newloc 인자는 다음 값들 중 하나일 수 있다.
- newlocale(3)이나 duplocale(3) 호출이 반환한 핸들
- 지정한 로캘을 호출 스레드의 현재 로캘로 설정한다.
- 특수 로캘 객체 핸들
LC_GLOBAL_LOCALE - setlocale(3)로 정한 전역 로캘을 호출 스레드의 현재 로캘로 설정한다.
(locale_t) 0- 호출 스레드의 현재 로캘을 바꾸지 않고 그대로 둔다. (그리고 현재 로캘을 함수 결과로 반환한다.)
RETURN VALUE
성공 시 uselocale()은 이 스레드에서 앞선 uselocale() 호출로 설정했던 로캘 핸들을 반환한다. 그런 호출이 없었다면 LC_GLOBAL_LOCALE을 반환한다. 오류 발생 시 (locale_t) 0을 반환하며 오류를 나타내도록 errno를 설정한다.
ERRORS
EINVALnewloc이 유효한 로캘 객체를 가리키고 있지 않다.
VERSIONS
GNU C 라이브러리 2.3에서 uselocale() 함수가 처음 등장했다.
CONFORMING TO
POSIX.1-2008.
NOTES
setlocale(3)과 달리 uselocale()로는 개별 로캘 범주를 선택적으로 바꿀 수 없다. 현재 로캘에서 일부 범주만 다른 로캘을 사용하고 싶다면 duplocale(3) 및 newlocale(3)로 현재 로캘과 동등한 로캘 객체를 얻은 다음 그 객체에서 원하는 범주를 변경하면 된다.
EXAMPLES
newlocale(3) 및 duplocale(3) 참고.
SEE ALSO
locale(1), duplocale(3), freelocale(3), newlocale(3), setlocale(3), locale(5), locale(7)
2021-03-22