ОБЗОР
#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
ОПИСАНИЕ
Функция uselocale() задаёт текущую локаль в вызвавшей нити и возвращает
использовавшуюся локаль в этой нити ранее. После успешного выполнения
uselocale() любые выполняемые нитью вызовы функций, зависящие от локали,
будут работать с учётом установленной локали newloc.
В аргументе newloc можно указать одно из следующих значений:
Обработчик, полученный от вызовов newlocale(3) или duplocale(3) Текущая локаль вызвавшей нити будет равна указанной локали.
Специальный обработчик объекта локали LC_GLOBAL_LOCALE Текущая локаль вызвавшей нити будет равна глобальной локали, установленной setlocale(3).
(locale_t) 0 Текущая локаль вызвавшей нити останется неизменной (и текущая локаль возвращается как результат работы функции).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении uselocale() возвращает обработчик локали, который
был установлен предыдущим вызовом uselocale() в этой нити или
LC_GLOBAL_HANDLE, если это первый вызов. При ошибке возвращается
(locale_t) 0, а errno присваивается код ошибки.
ОШИБКИ
EINVAL Значение newloc не указывает на допустимый объект локали.