uselocale(3)

ИМЯ
uselocale - задаёт/получает локаль для вызывающей нити

LIBRARY
Standard C library (libc, -lc)

СИНТАКСИС
#include <locale.h>

locale_t uselocale(locale_t newloc);

    Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

uselocale():
    Since glibc 2.10:
        _XOPEN_SOURCE >= 700
    Before glibc 2.10:
        _GNU_SOURCE

ОПИСАНИЕ
Функция uselocale() задаёт текущую локаль в вызвавшей нити и возвращает использовавшуюся локаль в этой нити ранее. После успешного выполнения uselocale() любые выполняемые нитью вызовы функций, зависящие от локали, будут работать с учётом установленной локали newloc.

В аргументе newloc можно указать одно из следующих значений:

Обработчик, полученный от вызовов newlocale(3) или duplocale(3)
    Текущая локаль вызвавшей нити будет равна указанной локали.

Специальный обработчик объекта локали LC_GLOBAL_LOCALE
    Текущая локаль вызвавшей нити будет равна глобальной локали, установленной setlocale(3).

(locale_t) 0
    Текущая локаль вызвавшей нити останется неизменной (и текущая локаль возвращается как результат работы функции).

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
On success, uselocale() returns the locale handle that was set by the previous call to uselocale() in this thread, or LC_GLOBAL_LOCALE if there was no such previous call. On error, it returns (locale_t) 0, and sets errno to indicate the error.

ОШИБКИ

EINVAL
    Значение newloc не указывает на допустимый объект локали.

СТАНДАРТЫ
POSIX.1-2008.

ИСТОРИЯ
glibc 2.3. POSIX.1-2008.

ЗАМЕЧАНИЯ
В отличие от setlocale(3), uselocale() не позволяет выборочно указывать отдельные категории локали. Для задания локали, которая отличается только отдельными категориями от текущей локали, используйте вызов duplocale(3) и newlocale(3) для получения эквивалента объекта локали для текущей локали и измените желаемые категории в этом объекте.

ПРИМЕРЫ
Смотрите newlocale(3) и duplocale(3).

СМ. ТАКЖЕ
locale(1), duplocale(3), freelocale(3), newlocale(3), setlocale(3), locale(5), locale(7)

ПЕРЕВОД
Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy Ovchinnikov <dmitriyxt5@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Katrin Kutepova <blackkatelv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 (https://www.gnu.org/licenses/gpl-3.0.html) или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.