LOCALECONV(3)

NAME
localeconv - retrieve parameters for locale-dependent formatting of numbers

SYNOPSIS
#include <locale.h>
struct lconv *
localeconv(void);

DESCRIPTION
The localeconv() function returns a pointer to a static structure which provides parameters for locale(1)-dependent formatting of numbers. On OpenBSD, nothing in the returned structure ever changes. On other operating systems, the contents of the structure may vary according to the LC_NUMERIC and LC_MONETARY locale categories.

It provides the following fields of type char *:

decimal_point
    The decimal point character, except for currency values.

thousands_sep
    The separator between groups of digits before the decimal point, except for currency values.

grouping
    The sizes of the groups of digits, except for currency values. This is a pointer to a vector of integers, each of size char, representing group size from low order digit groups to high order (right to left). The list may be terminated with 0 or CHAR_MAX. If the list is terminated with 0, the last group size before the 0 is repeated to account for all the digits. If the list is terminated with CHAR_MAX, no more grouping is performed.

int_curr_symbol
    The standardized international currency symbol.

currency_symbol
    The local currency symbol.

mon_decimal_point
    The decimal point character for currency values.

mon_thousands_sep
    The separator for digit groups in currency values.

mon_grouping
    Like grouping but for currency values.

positive_sign
    The character used to denote non-negative currency values, usually the empty string.

negative_sign
    The character used to denote negative currency values, usually a minus sign.

It also provides the following fields of type char:

int_frac_digits
    The number of digits after the decimal point in an international-style currency value.

frac_digits
    The number of digits after the decimal point in the local style for currency values.

p_cs_precedes
    1 if the currency symbol precedes the currency value for non-negative values, 0 if it follows.

p_sep_by_space
    1 if a space is inserted between the currency symbol and the currency value for non-negative values, 0 otherwise.

n_cs_precedes
    Like p_cs_precedes but for negative values.

n_sep_by_space
    Like p_sep_by_space but for negative values.

p_sign_posn
    The location of the positive_sign with respect to a non-negative quantity and the currency_symbol, coded as follows:

    0   Parentheses around the entire string.
    1   Before the string.
    2   After the string.
    3   Just before currency_symbol.
    4   Just after currency_symbol.

n_sign_posn
    Like p_sign_posn but for negative currency values.

int_p_cs_precedes
    Like p_cs_precedes but for the international symbol.

int_n_cs_precedes
    Like n_cs_precedes but for the international symbol.

int_p_sep_by_space
    Like p_sep_by_space but for the international symbol.

int_n_sep_by_space
    Like n_sep_by_space but for the international symbol.

int_p_sign_posn
    Like p_sign_posn but for the international symbol.

int_n_sign_posn
    Like n_sign_posn but for the international symbol.

Unless mentioned above, an empty string as a value for a field indicates a zero length result or a value that is not in the current locale. A CHAR_MAX result similarly denotes an unavailable value.

SEE ALSO
locale(1), nl_langinfo(3), setlocale(3)

STANDARDS
The localeconv() function conforms to ansiC.

HISTORY
The localeconv() function first appeared in 4.4BSD.