malloc_get_state.3: tfix
[man-pages.git] / man3 / uselocale.3
blob3e3df603cfbee7328f05c13775463bf68218a6ce
1 .\" Copyright (C) 2014 Michael Kerrisk <mtk.manpages@gmail.com>
2 .\"
3 .\" SPDX-License-Identifier: Linux-man-pages-copyleft
4 .\"
5 .TH uselocale 3 (date) "Linux man-pages (unreleased)"
6 .SH NAME
7 uselocale \- set/get the locale for the calling thread
8 .SH LIBRARY
9 Standard C library
10 .RI ( libc ", " \-lc )
11 .SH SYNOPSIS
12 .nf
13 .B #include <locale.h>
15 .BI "locale_t uselocale(locale_t " newloc );
16 .fi
18 .RS -4
19 Feature Test Macro Requirements for glibc (see
20 .BR feature_test_macros (7)):
21 .RE
23 .BR uselocale ():
24 .nf
25     Since glibc 2.10:
26         _XOPEN_SOURCE >= 700
27     Before glibc 2.10:
28         _GNU_SOURCE
29 .fi
30 .SH DESCRIPTION
31 The
32 .BR uselocale ()
33 function sets the current locale for the calling thread,
34 and returns the thread's previously current locale.
35 After a successful call to
36 .BR uselocale (),
37 any calls by this thread to functions that depend on the locale
38 will operate as though the locale has been set to
39 .IR newloc .
41 The
42 .I newloc
43 argument can have one of the following values:
44 .TP
45 A handle returned by a call to \fBnewlocale\fP(3) or \fBduplocale\fP(3)
46 The calling thread's current locale is set to the specified locale.
47 .TP
48 The special locale object handle \fBLC_GLOBAL_LOCALE\fP
49 The calling thread's current locale is set to the global locale determined by
50 .BR setlocale (3).
51 .TP
52 .I "(locale_t) 0"
53 The calling thread's current locale is left unchanged
54 (and the current locale is returned as the function result).
55 .SH RETURN VALUE
56 On success,
57 .BR uselocale ()
58 returns the locale handle that was set by the previous call to
59 .BR uselocale ()
60 in this thread, or
61 .B LC_GLOBAL_LOCALE
62 if there was no such previous call.
63 On error, it returns
64 .IR "(locale_t)\ 0" ,
65 and sets
66 .I errno
67 to indicate the error.
68 .SH ERRORS
69 .TP
70 .B EINVAL
71 .I newloc
72 does not refer to a valid locale object.
73 .SH STANDARDS
74 POSIX.1-2008.
75 .SH HISTORY
76 glibc 2.3.
77 POSIX.1-2008.
78 .SH NOTES
79 Unlike
80 .BR setlocale (3),
81 .BR uselocale ()
82 does not allow selective replacement of individual locale categories.
83 To employ a locale that differs in only a few categories from the current
84 locale, use calls to
85 .BR duplocale (3)
86 and
87 .BR newlocale (3)
88 to obtain a locale object equivalent to the current locale and
89 modify the desired categories in that object.
90 .SH EXAMPLES
91 See
92 .BR newlocale (3)
93 and
94 .BR duplocale (3).
95 .SH SEE ALSO
96 .BR locale (1),
97 .BR duplocale (3),
98 .BR freelocale (3),
99 .BR newlocale (3),
100 .BR setlocale (3),
101 .BR locale (5),
102 .BR locale (7)