setlocale()

Updated: October 28, 2024

Select a program's locale

Warning: Don't use setlocale() in QNX Neutrino programs; this function only provides POSIX compliance.

Synopsis:

#include <locale.h>

char * setlocale( int category, 
                  const char * locale );

Arguments:

category
The part of the environment that you want to set; one of:
  • LC_ALL — select the entire locale environment.
  • LC_COLLATE — select only the collating sequence.
  • LC_CTYPE — select only the character-handling information.
  • LC_MESSAGES — specify the language to be used for messages.
  • LC_MONETARY — select only monetary formatting information.
  • LC_NUMERIC — select only the numeric-format environment.
  • LC_TIME — select only the time-related environment.
locale
The locale that you want to use. The following built-in locales are offered:
  • C (default)
  • C-TRADITIONAL
  • POSIX
Note: The C and POSIX locales are equivalent.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The setlocale() function selects a program's locale, according to the specified category and the specified locale.

A locale affects several things:

See the localeconv() function for more information about the locale.

At the start of a program, the default C locale is initialized as if the following call to setlocale() appeared at the start of main():

(void)setlocale( LC_ALL, "C" );

Returns:

The string associated with the specified category for the new locale, or NULL if an error occurs. This function doesn't change the program's locale when error occurs.

Note:
  • For a NULL pointer of locale, this function returns a pointer to the string associated with the category for the program's current locale. This function doesn't change the program's locale.
  • QNX Neutrino provides this function for POSIX compatibility, but it isn't adequate for internationalization. QNX Neutrino ships the International Components for Unicode (ICU) libraries (libicu*) that you can use instead. For more information about ICU, see https://icu.unicode.org/home.

Classification:

ANSI, POSIX 1003.1

Safety:  
Cancellation point No
Interrupt handler No
Signal handler No
Thread No