Функция setlocale()
возвращает указатель на строку, содержащую информацию о локали. Вы можете взять его копию (но не можете изменить его, и последующие вызовы setlocale()
могут перезаписать предыдущее значение). Строка может быть использована для установки локали в будущем.
char *loc_str = setlocale(LC_ALL, "");
if (loc_str == 0)
...failed to set locale...
printf("LC_ALL = %s\n", loc_str);
Если вы установите одну категорию, вы получите строку, которая позволит вам восстановить эту категорию. Вы можете посмотреть на LC_COLLATE
и посмотреть, что установлено:
char *loc_str = setlocale(LC_COLLATE, "");
if (loc_str == 0)
...failed to set locale...
printf("LC_COLLATE = %s\n", loc_str);
1012 * Etc. *
Это может дать или не дать вам понятную человеку ценность - но, по крайней мере, поэкспериментируйте, чтобы увидеть, что она использует.
Вы также можете посмотреть переменную окружения LANG
или переменные окружения LC_*
.