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