uselocale - set/get the locale for the calling thread
locale_t uselocale(locale_t newloc);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
The uselocale() function sets the current locale for the calling thread,
and returns the thread's previously current locale. After a successful call to
uselocale(), any calls by this thread to functions that depend on the
locale will operate as though the locale has been set to newloc.
- Since glibc 2.10:
- _XOPEN_SOURCE >= 700
- Before glibc 2.10:
The newloc argument can have one of the following
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 cause of the
- A handle returned by a call to newlocale(3) or
- The calling thread's current locale is set to the specified locale.
- The special locale object handle LC_GLOBAL_LOCALE
- The calling thread's current locale is set to the global locale determined
- (locale_t) 0
- The calling thread's current locale is left unchanged (and the current
locale is returned as the function result).
The uselocale() function first appeared in version 2.3 of the GNU C
Unlike setlocale(3), uselocale() does not allow selective
replacement of individual locale categories. To employ a locale that differs
in only a few categories from the current locale, use calls to
duplocale(3) and newlocale(3) to obtain a locale object
equivalent to the current locale and modify the desired categories in that
This page is part of release 5.01 of the Linux man-pages project. A
description of the project, information about reporting bugs, and the latest
version of this page, can be found at https://www.kernel.org/doc/man-pages/.
- newloc does not refer to a valid locale object.