NEWLOCALE(3C) Standard C Library Functions NEWLOCALE(3C)

NAME


duplocale, freelocale, newlocale - create, duplicate, and destroy
locale objects

SYNOPSIS


#include <locale.h>

locale_t newlocale(int category_mask, const char *locale,
locale_t base);

locale_t duplocale(locale_t loc);

void freelocale(locale_t loc);

DESCRIPTION


These functions manipulate locale objects that can be used
uselocale(3C) and functions that take arguments of type locale_t.

The function newlocale() can be used to create a new locale object.
It can also be used to modify an existing locale object, the new
locale object will be a replacement for the modified locale object.
To create a new locale, the argument base should be passed the
special argument (locale_t)0. This will use a copy of the current
global locale as a starting point. To modify an existing locale
object, it should be passed in as the argument base. The new locale
object is constructed by taking the categories specified in
category_mask from the locale specified by the string locale, and
filling in the remaining categories from the locale base. When
newlocale() returns, callers must no longer use base and assume that
freelocale(3C) has been called on it. In addition to locales defined
on the system, the following three locales may always be passed in as
the string locale:

"C" Specifies the traditional UNIX system behavior.

"POSIX"
An alternate name for the locale "C".

"" Indicates that the locale should be processed based in the
values in the environment. See setlocale(3C) and environ(7)
for more information.

The value of category_mask is a bitwise-inclusive or of the following
macros which correspond to categories as defined in locale(7) and
environ(7):

LC_CTYPE_MASK
Character classification and case conversion.

LC_NUMERIC_MASK
Numeric formatting.

LC_TIME_MASK
Date and time formatting.

LC_COLLATE_MASK
Collation order.

LC_MONETARY_MASK
Monetary formatting.

LC_MESSAGES_MASK
Formats of informative and diagnostic messages and interactive
responses.

LC_ALL_MASK
Mask of all categories.

The function duplocale() duplicates the locale object specified by
loc. If the locale object passed is LC_GLOBAL_LOCALE, duplocale()
creates a copy of the current global locale as defined through calls
to setlocale(3C).

The function freelocale() removes and releases all resources
associated with the locale object loc. Programs must not call
freelocale() on LC_GLOBAL_LOCALE.

RETURN VALUES


On success, the functions newlocale() and duplocale() return a new
locale object that can be used with functions that take a locale_t.
Locale objects created this way should be freed with freelocale().
On error, the functions newlocale() and duplocale() return
(locale_t)0 and errno is set to indicate the error. The freelocale()
function does not set errno.

ERRORS


The newlocale() and duplocale() functions will fail if:

ENOMEM Insufficient memory was available to create the locale object
or to load the requested locale data.

The newlocale() function will fail if:

EINVAL An unknown bit is specified in category_mask.

ENOENT Locale data was not found for a category specified in

ATTRIBUTES



+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Standard |
+--------------------+-----------------+
|MT-Level | Safe |
+--------------------+-----------------+

SEE ALSO


locale(1), setlocale(3C), uselocale(3C), environ(7), locale(7)

November 26, 2017 NEWLOCALE(3C)

tribblix@gmail.com :: GitHub :: Privacy