newlocale
—
Creates a new locale
Standard C Library (libc, -lc)
#include <locale.h>
locale_t
newlocale
(int
mask, const char *
locale, locale_t
base);
Creates a new locale, inheriting some properties from an existing locale. The
mask defines the components that the new locale will
have set to the locale with the name specified in the
locale parameter. Any components not specified in
mask will be inherited from the locale referenced by
base, if base is not
NULL
. If the call is successful, the state of the
locale referenced by base is unspecified, and it must
not be accessed. The special locale LC_GLOBAL_LOCALE
may not be specified for base. The
mask is either LC_ALL_MASK,
indicating all possible locale components, or the logical OR of some
combination of the following:
- LC_COLLATE_MASK
- The locale for string collation routines. This controls alphabetic
ordering in
strcoll(3)
and
strxfrm(3).
- LC_CTYPE_MASK
- The locale for the
ctype(3)
and
multibyte(3)
functions. This controls recognition of upper and lower case, alphabetic
or non-alphabetic characters, and so on.
- LC_MESSAGES_MASK
- Set a locale for message catalogs, see
catopen(3)
function.
- LC_MONETARY_MASK
- Set a locale for formatting monetary values; this affects the
localeconv(3)
function.
- LC_NUMERIC_MASK
- Set a locale for formatting numbers. This controls the formatting of
decimal points in input and output of floating point numbers in functions
such as
printf(3)
and
scanf(3),
as well as values returned by
localeconv(3).
- LC_TIME_MASK
- Set a locale for formatting dates and times using the
strftime(3)
function.
This function uses the same rules for loading locale components as
setlocale(3).
Returns a new, valid, locale_t or NULL if an error occurs.
You must free the returned locale with
freelocale(3).
This function conforms to IEEE Std 1003.1-2008
(“POSIX.1”).