Linux
2017-09-15
man-pages-ru
Russian man pages from the Linux Documentation Project
manpages-dev
Manual pages about using GNU/Linux for development
man-pages
Linux kernel and C library user-space interface documentation
ИМЯ
uselocale - задаёт/получает локаль для вызывающей нити
ОБЗОР
#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_LOCALE, если это первый вызов. При ошибке возвращается (locale_t) 0, а errno присваивается код ошибки.
ОШИБКИ
EINVAL | Значение newloc не указывает на допустимый объект локали. |
ВЕРСИИ
Функция uselocale() впервые появилась в версии 2.3 библиотеки GNU C.
СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1-2008.
ЗАМЕЧАНИЯ
В отличие от setlocale(3), uselocale() не позволяет выборочно указывать отдельные категории локали. Для задания локали, которая отличается только отдельными категориями от текущей локали, используйте вызов duplocale(3) и newlocale(3) для получения эквивалента объекта локали для текущей локали и измените желаемые категории в этом объекте.
ПРИМЕР
Смотрите newlocale(3) и duplocale(3).