Доброго времени суток.
Как программно, на C, узнать текущую локализацию ОС?
Спасибо.
Если брать стандартную библиотеку C, то подойдут функции из <locale.h>.
/* Set and/or return the current locale. */
extern char *setlocale (int __category, const char *__locale) __THROW;
/* Return the numeric/monetary information for the current locale. */
extern struct lconv *localeconv (void) __THROW;
В C++ - <locale>, лучше всего справиться на
cppreference.com.
С учётом библиотечного дизайна семейства C, у библиотек могут быть свои способы получения локали и самого правильного среди них нет, но в целом все библиотеки слушаются функции setlocale().
"C" - это дефолтная локаль, например можно вызвать setlocale("C") и программа будет переключена на системную локализацию (это будет какая-нибудь ru в русской версии WinXP, а в Linux и семёрочке максимальной/энтерпрайзной можно поменять системную локаль).
Использовать system стоит только в крайних ситуациях, когда нужного нет в стандартной или сторонних библиотеках, да и то в таких случаях лучше уж QProcess каким-нибудь воспользоваться.