#include <locale.h>char setlocale(int category, const char locale);
Each category corresponds to a set of databases that contain the relevant information for each defined locale. The location of the system's database is given by the following path, /usr/lib/locale/locale/category, where locale and category are the names of locale and category, respectively. For example, the database for the LC_CTYPE category for the ``german'' locale would be found in /usr/lib/locale/german/LC_CTYPE.
A value of ``C'' for locale specifies the default environment.
A value of ``""'' for locale specifies that the locale should be taken from environment variables. For each of the above categories (not LC_ALL), the first of three environment variables with a nonempty value is used: LC_ALL, the category's name (e.g., LC_CTYPE), and LANG.
At program startup, the equivalent of
setlocale(LC_ALL, "C")
is executed. This has the effect of initializing each category to the locale described by the locale ``C.''
If a pointer to a string is given for locale, setlocale attempts to set the locale for the given category to locale. If setlocale succeeds, the description of the new locale is returned. If setlocale fails, a null pointer is returned and the program's locale is not changed.
For category LC_ALL, the behavior is slightly different. If a pointer to a string is given for locale and LC_ALL is given for category, setlocale attempts to set the locale for all the categories to locale. The locale may be a simple locale, consisting of a single locale, or a composite locale. A composite locale is a string returned by a previous call to setlocale with LC_ALL for which the locale did not consist of identical category values. If setlocale fails to set the locale for any category, a null pointer is returned and the program's locale for all categories is not changed. Otherwise, a description of the new locale is returned.
A null pointer for locale causes setlocale to return the current locale associated with the category. The program's locale is not changed.