setlocale()

QNX SDP8.0C Library ReferenceAPIDeveloper

Select a program's locale

Warning:
Don't use setlocale() in QNX OS 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

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:

  • The collating sequence (the order in which characters compare with one another) used by strcoll() or wcscoll().
  • The way certain character-handling functions (such as isalnum() and isalpha()) operate. The wide-character versions include iswalnum() and iswalpha().
  • The decimal-point character used in formatted input/output and string conversion (printf(), scanf(), and friends).
  • The format and names used in the string produced by the strftime() and wcsftime() functions.

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 OS provides this function for POSIX compatibility, but it isn't adequate for internationalization. QNX OS 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 pointNo
Signal handlerNo
ThreadNo
Page updated: