DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH

# lconv(FP)

lconv -- Internationalization (native language support) information

## Syntax

```#include <locale.h>
```

## Description

The lconv structure contains the following members:

Member Default Description
decimal_point "." Decimal point
thousands_sep "" Thousands separator
grouping "" Size of groups of digits
int_curr_symbol "" International currency symbol
currency_symbol "" Currency symbol
mon_decimal_point "" Monetary decimal point
mon_thousands_sep "" Monetary thousands separator
mon_grouping "" Monetary groupings
positive_sign "" Positive sign
negative_sign "" Negative sign

int_frac_digits
frac_digits

CHAR_MAX
CHAR_MAX
Number of digits used to display the fractions of a monetary unit; for example, two digits are used for \$1.99
p_cs_precedes CHAR_MAX Whether the `currency_symbol` precedes (1) or succeeds (0) a positive monetary value; for example, \$99.97 or .99\$
p_sep_by_space CHAR_MAX Whether a space separates a `currency_symbol` from a positive value; for example, \$99.97 (value is 0) or \$ 99.97 (value is 1)
n_cs_precedes CHAR_MAX Whether a `currency_symbol` precedes (1) or succeeds (0) a negative monetary value; for example, \$-99.97 or -.99\$
n_sep_by_space CHAR_MAX Whether a space separates a `currency_symbol` from a negative value; for example, \$-99.97 (value is 0) or \$ -99.97 (value is 1)
p_sign_posn CHAR_MAX How to designate a positive monetary value. If the value is 0, parentheses are used, for example, (\$99.97). If the value is 1, then the value of `positive_sign` is used; if 2 the sign string succeeds the value, if 3, the sign string precedes the value and the `currency_symbol`; if 4, the sign string immediately succeeds the `currency_symbol`. For example, if `positive_sign` is set to ``+'', then the result is +\$99.97.
n_sign_posn CHAR_MAX How to designate a negative monetary value. Uses the same values as `p_sign_posn`, except that the sign string is the `negative_sign` string.

``` +------------------+----------+-------------------------------+
|Member            | Default  | Description                   |
+------------------+----------+-------------------------------+
+------------------+----------+-------------------------------+
|decimal_point     |   "."    | Decimal point                 |
+------------------+----------+-------------------------------+
|thousands_sep     |    ""    | Thousands separator           |
+------------------+----------+-------------------------------+
|grouping          |    ""    | Size of groups of digits      |
+------------------+----------+-------------------------------+
|int_curr_symbol   |    ""    | International currency symbol |
+------------------+----------+-------------------------------+
|currency_symbol   |    ""    | Currency symbol               |
+------------------+----------+-------------------------------+
|mon_decimal_point |    ""    | Monetary decimal point        |
+------------------+----------+-------------------------------+
|mon_thousands_sep |    ""    | Monetary thousands separator  |
+------------------+----------+-------------------------------+
|mon_grouping      |    ""    | Monetary groupings            |
+------------------+----------+-------------------------------+
|positive_sign     |    ""    | Positive sign                 |
+------------------+----------+-------------------------------+
|negative_sign     |    ""    | Negative sign                 |
+------------------+----------+-------------------------------+
|int_frac_digits   | CHAR_MAX | Number of digits used to      |
|frac_digits       | CHAR_MAX | display the fractions of a    |
|                  |          | monetary unit; for example,   |
|                  |          | two digits are used for \$1.99 |
+------------------+----------+-------------------------------+
|p_cs_precedes     | CHAR_MAX | Whether the currency_symbol   |
|                  |          | precedes (1) or succeeds (0)  |
|                  |          | a positive monetary value;    |
|                  |          | for example, \$99.97 or .99\$   |
+------------------+----------+-------------------------------+
|p_sep_by_space    | CHAR_MAX | Whether a space separates a   |
|                  |          | currency_symbol from a        |
|                  |          | positive value; for example,  |
|                  |          | \$99.97 (value is 0) or \$      |
|                  |          | 99.97 (value is 1)            |
+------------------+----------+-------------------------------+
|n_cs_precedes     | CHAR_MAX | Whether a currency_symbol     |
|                  |          | precedes (1) or succeeds (0)  |
|                  |          | a negative monetary value;    |
|                  |          | for example, \$-99.97 or -.99\$ |
+------------------+----------+-------------------------------+
|n_sep_by_space    | CHAR_MAX | Whether a space separates a   |
|                  |          | currency_symbol from a        |
|                  |          | negative value; for example,  |
|                  |          | \$-99.97 (value is 0) or \$     |
|                  |          | -99.97 (value is 1)           |
+------------------+----------+-------------------------------+
|p_sign_posn       | CHAR_MAX | How to designate a positive   |
|                  |          | monetary value.  If the value |
|                  |          | is 0, parentheses are used,   |
|                  |          | for example, (\$99.97). If the |
|                  |          | value is 1, then the value of |
|                  |          | positive_sign is used; if 2   |
|                  |          | the sign string succeeds the  |
|                  |          | value, if 3, the sign string  |
|                  |          | precedes the value and the    |
|                  |          | currency_symbol; if 4, the    |
|                  |          | sign string immediately       |
|                  |          | succeeds the currency_symbol. |
|                  |          | For example, if positive_sign |
|                  |          | is set to ``+'', then the     |
|                  |          | result is +\$99.97.            |
+------------------+----------+-------------------------------+
|n_sign_posn       | CHAR_MAX | How to designate a negative   |
|                  |          | monetary value.  Uses the     |
|                  |          | same values as p_sign_posn,   |
|                  |          | except that the sign string   |
|                  |          | is the negative_sign string.  |
+------------------+----------+-------------------------------+
```
If a string member in the lconv structure has the value "" (the null string) or if a char member has the value CHAR_MAX, then the value for the member is is unavailable in the current locale.

CHAR_MAX is usually defined as decimal 127 unless the program is compiled with the -J compiler option. The -J option allows the user to treat char types as unsigned integers instead of signed integers. Thus, CHAR_MAX is changed in the header file <limits.h> to the value 255. However, the locale files were built with the assumption that CHAR_MAX equals 127. In this case you should use the value 127 explicitly instead of CHAR_MAX.

NOTE: Currently, the only locale values supported for C are the default values listed above. Different values may be supported by other languages; these may be obtained from the appropriate locale documentation.

© 2003 File Formats for Programming (FP)
SCO OpenServer Release 5.0.7 -- 11 February 2003