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
EINVAL
newloc
이 유효한 로캘 객체를 가리키고 있지 않다.
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