Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
SETLOCALE(3)		   Linux Programmer's Manual		  SETLOCALE(3)

       setlocale - set the current locale

       #include	<locale.h>

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

       The  setlocale()	function is used to set	or query the program's current

       If locale is not	NULL, the program's current locale is modified accord-
       ing  to the arguments.  The argument category determines	which parts of
       the program's current locale should be modified.

       Category		   Governs
       LC_ALL		   All of the locale
       LC_ADDRESS	   Formatting of addresses and
			   geography-related items (*)
       LC_COLLATE	   String collation
       LC_CTYPE		   Character classification
       LC_IDENTIFICATION   Metadata describing the locale (*)
       LC_MEASUREMENT	   Settings related to measurements
			   (metric versus US customary)	(*)
       LC_MESSAGES	   Localizable natural-language	messages
       LC_MONETARY	   Formatting of monetary values
       LC_NAME		   Formatting of salutations for persons (*)
       LC_NUMERIC	   Formatting of nonmonetary numeric values
       LC_PAPER		   Settings related to the standard paper size (*)
       LC_TELEPHONE	   Formats to be used with telephone services (*)
       LC_TIME		   Formatting of date and time values

       The categories marked with an asterisk in the above table are  GNU  ex-
       tensions.   For further information on these locale categories, see lo-

       The argument locale is a	pointer	to a character string  containing  the
       required	 setting  of  category.	  Such a string	is either a well-known
       constant	like "C" or "da_DK" (see below), or an opaque string that  was
       returned	by another call	of setlocale().

       If  locale  is an empty string, "", each	part of	the locale that	should
       be modified is set according to the environment variables.  The details
       are  implementation-dependent.	For  glibc, first (regardless of cate-
       gory), the environment variable LC_ALL is inspected, next the  environ-
       ment variable with the same name	as the category	(see the table above),
       and finally the environment variable LANG.  The first existing environ-
       ment  variable  is used.	 If its	value is not a valid locale specifica-
       tion, the locale	is unchanged, and setlocale() returns NULL.

       The locale "C" or "POSIX" is a portable locale; its LC_CTYPE part  cor-
       responds	to the 7-bit ASCII character set.

       A  locale  name	is  typically  of the form language[_territory][.code-
       set][@modifier],	where language is an ISO 639 language code,  territory
       is an ISO 3166 country code, and	codeset	is a character set or encoding
       identifier like ISO-8859-1 or UTF-8.  For a list	of all	supported  lo-
       cales, try "locale -a", cf. locale(1).

       If locale is NULL, the current locale is	only queried, not modified.

       On  startup of the main program,	the portable "C" locale	is selected as
       default.	 A program may be made portable	to all locales by calling:

	   setlocale(LC_ALL, "");

       after program initialization, by	using the values returned from	a  lo-
       caleconv(3)  call for locale-dependent information, by using the	multi-
       byte and	wide character functions for text processing if	 MB_CUR_MAX  >
       1,  and	by  using  strcoll(3), wcscoll(3) or strxfrm(3), wcsxfrm(3) to
       compare strings.

       A successful call to setlocale()	returns	an opaque string  that	corre-
       sponds to the locale set.  This string may be allocated in static stor-
       age.  The string	returned is such that  a  subsequent  call  with  that
       string  and  its	 associated  category  will  restore  that part	of the
       process's locale.  The return value is NULL if the  request  cannot  be

       C89, C99, POSIX.1-2001.

       locale(1), localedef(1),	isalpha(3), localeconv(3), nl_langinfo(3), rp-
       match(3), strcoll(3), strftime(3), charsets(7), locale(7)

       This page is part of release 3.74 of the	Linux  man-pages  project.   A
       description  of	the project, information about reporting bugs, and the
       latest	 version    of	  this	  page,	   can	   be	  found	    at

GNU				  2014-05-28			  SETLOCALE(3)


Want to link to this manual page? Use this URL:

home | help