Once installed, this file will be used by the localeconv function to initialize the monetary specific fields of a structure of type struct lconv. For a description of each field in this structure, see localeconv(3C).
struct lconv { char *decimal_point; /* "." */ char *thousands_sep; /* "" (zero length string) */ char *grouping; /* "" */ char *int_curr_symbol; /* "" */ char *currency_symbol; /* "" */ char *mon_decimal_point; /* "" */ char *mon_thousands_sep; /* "" */ char *mon_grouping; /* "" */ char *positive_sign; /* "" */ char *negative_sign; /* "" */ char int_frac_digits; /* CHAR_MAX */ char frac_digits; /* CHAR_MAX */ char p_cs_precedes; /* CHAR_MAX */ char p_sep_by_space; /* CHAR_MAX */ char n_cs_precedes; /* CHAR_MAX */ char n_sep_by_space; /* CHAR_MAX */ char p_sign_posn; /* CHAR_MAX */ char n_sign_posn; /* CHAR_MAX */ };The specification file specifies the value of each struct lconv member, except for the first three members,
decimal_point
, thousands_sep
,
and grouping
,
which are set by the LC_NUMERIC category of
setlocale(3C).
Each member's value is given on a line with the following format:
where keyword is identical to the struct lconv field name and value is a quoted string for those fields that are a character pointer and an integer for those fields that hold an integer value. For example,
int_curr_symbol "ITL." int_frac_digits 0will set the international currency symbol and the number of fractional digits to be displayed in an internationally formatted monetary quantity to ``ITL.'' and ``0'', respectively.
Blank lines and lines starting with a ``#'' are taken to be comments and are ignored. A character in a string may be in octal or hex representation. For example, ``\141'' or ``\x61'' could be used to represent the letter ``a''. If there is no specification line for a given structure member, then the default C locale value for that member is used (see the values in comments in the struct lconv definition above).
Given below is an example of what the specification file for Italy would look like:
# Italyint_curr_symbol "ITL." currency_symbol "L." mon_decimal_point "" mon_thousands_sep "." mon_grouping "\3" positive_sign "" negative_sign "-" int_frac_digits 0 frac_digits 0 p_cs_precedes 1 p_sep_by_space 0 n_cs_precedes 1 n_sep_by_space 0 p_sign_posn 1 n_sign_posn 1
The first three elements of the lconv structure, decimal_point
,
thousand_sep
, and grouping
are set by the LC_NUMERIC
category of
setlocale(3C).
The
chrtbl(1M)
utility
can be used to generate the LC_NUMERIC data containing this information.