summaryrefslogtreecommitdiffstats
path: root/man-pages-posix-2003/man3p/setlocale.3p
diff options
context:
space:
mode:
Diffstat (limited to 'man-pages-posix-2003/man3p/setlocale.3p')
-rw-r--r--man-pages-posix-2003/man3p/setlocale.3p315
1 files changed, 315 insertions, 0 deletions
diff --git a/man-pages-posix-2003/man3p/setlocale.3p b/man-pages-posix-2003/man3p/setlocale.3p
new file mode 100644
index 0000000..89fd41e
--- /dev/null
+++ b/man-pages-posix-2003/man3p/setlocale.3p
@@ -0,0 +1,315 @@
+.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
+.TH "SETLOCALE" 3P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\" setlocale
+.SH PROLOG
+This manual page is part of the POSIX Programmer's Manual.
+The Linux implementation of this interface may differ (consult
+the corresponding Linux manual page for details of Linux behavior),
+or the interface may not be implemented on Linux.
+.SH NAME
+setlocale \- set program locale
+.SH SYNOPSIS
+.LP
+\fB#include <locale.h>
+.br
+.sp
+char *setlocale(int\fP \fIcategory\fP\fB, const char *\fP\fIlocale\fP\fB);
+.br
+\fP
+.SH DESCRIPTION
+.LP
+The \fIsetlocale\fP() function selects the appropriate piece of the
+program's locale, as specified by the \fIcategory\fP and
+\fIlocale\fP arguments, and may be used to change or query the program's
+entire locale or portions thereof. The value
+\fILC_ALL\fP for \fIcategory\fP names the program's entire locale;
+other values for \fIcategory\fP name only a part of the
+program's locale:
+.TP 7
+\fILC_COLLATE\fP
+Affects the behavior of regular expressions and the collation functions.
+.TP 7
+\fILC_CTYPE\fP
+Affects the behavior of regular expressions, character classification,
+character conversion functions, and wide-character
+functions.
+.TP 7
+\fILC_MESSAGES\fP
+Affects what strings are expected by commands and utilities as affirmative
+or negative responses.
+.LP
+It also affects what strings are given by commands and utilities as
+affirmative or negative responses, and the content of messages.
+.TP 7
+\fILC_MONETARY\fP
+Affects the behavior of functions that handle monetary values.
+.TP 7
+\fILC_NUMERIC\fP
+Affects the behavior of functions that handle numeric values.
+.TP 7
+\fILC_TIME\fP
+Affects the behavior of the time conversion functions.
+.sp
+.LP
+The \fIlocale\fP argument is a pointer to a character string containing
+the required setting of \fIcategory\fP. The contents
+of this string are implementation-defined. In addition, the following
+preset values of \fIlocale\fP are defined for all settings
+of \fIcategory\fP:
+.TP 7
+"POSIX"
+Specifies the minimal environment for C-language translation called
+the POSIX locale. If \fIsetlocale\fP() is not invoked, the
+POSIX locale is the default at entry to \fImain\fP().
+.TP 7
+"C"
+Equivalent to \fB"POSIX"\fP .
+.TP 7
+""
+Specifies an implementation-defined native environment. This corresponds
+to the value of the associated environment
+variables, \fILC_*\fP and \fILANG ;\fP see the Base Definitions volume
+of IEEE\ Std\ 1003.1-2001, Chapter 7, Locale and the Base Definitions
+volume of IEEE\ Std\ 1003.1-2001, Chapter 8, Environment Variables.
+.TP 7
+A\ null\ pointer
+Used to direct \fIsetlocale\fP() to query the current internationalized
+environment and return the name of the locale.
+.sp
+.LP
+The locale state is common to all threads within a process.
+.SH RETURN VALUE
+.LP
+Upon successful completion, \fIsetlocale\fP() shall return the string
+associated with the specified category for the new
+locale. Otherwise, \fIsetlocale\fP() shall return a null pointer and
+the program's locale is not changed.
+.LP
+A null pointer for \fIlocale\fP causes \fIsetlocale\fP() to return
+a pointer to the string associated with the \fIcategory\fP
+for the program's current locale. The program's locale shall not be
+changed.
+.LP
+The string returned by \fIsetlocale\fP() is such that a subsequent
+call with that string and its associated \fIcategory\fP
+shall restore that part of the program's locale. The application shall
+not modify the string returned which may be overwritten by a
+subsequent call to \fIsetlocale\fP().
+.SH ERRORS
+.LP
+No errors are defined.
+.LP
+\fIThe following sections are informative.\fP
+.SH EXAMPLES
+.LP
+None.
+.SH APPLICATION USAGE
+.LP
+The following code illustrates how a program can initialize the international
+environment for one language, while selectively
+modifying the program's locale such that regular expressions and string
+operations can be applied to text recorded in a different
+language:
+.sp
+.RS
+.nf
+
+\fBsetlocale(LC_ALL, "De");
+setlocale(LC_COLLATE, "Fr@dict");
+\fP
+.fi
+.RE
+.LP
+Internationalized programs must call \fIsetlocale\fP() to initiate
+a specific language operation. This can be done by calling
+\fIsetlocale\fP() as follows:
+.sp
+.RS
+.nf
+
+\fBsetlocale(LC_ALL, "");
+\fP
+.fi
+.RE
+.LP
+Changing the setting of \fILC_MESSAGES\fP has no effect on catalogs
+that have already been opened by calls to \fIcatopen\fP().
+.SH RATIONALE
+.LP
+The ISO\ C standard defines a collection of functions to support internationalization.
+One of the most significant aspects
+of these functions is a facility to set and query the \fIinternational
+environment\fP. The international environment is a
+repository of information that affects the behavior of certain functionality,
+namely:
+.IP " 1." 4
+Character handling
+.LP
+.IP " 2." 4
+Collating
+.LP
+.IP " 3." 4
+Date/time formatting
+.LP
+.IP " 4." 4
+Numeric editing
+.LP
+.IP " 5." 4
+Monetary formatting
+.LP
+.IP " 6." 4
+Messaging
+.LP
+.LP
+The \fIsetlocale\fP() function provides the application developer
+with the ability to set all or portions, called
+\fIcategories\fP, of the international environment. These categories
+correspond to the areas of functionality mentioned above. The
+syntax for \fIsetlocale\fP() is as follows:
+.sp
+.RS
+.nf
+
+\fBchar *setlocale(int\fP \fIcategory\fP\fB, const char *\fP\fIlocale\fP\fB);
+\fP
+.fi
+.RE
+.LP
+where \fIcategory\fP is the name of one of following categories, namely:
+.sp
+.RS
+.nf
+
+\fILC_COLLATE
+
+LC_CTYPE
+
+LC_MESSAGES
+
+LC_MONETARY
+
+LC_NUMERIC
+
+LC_TIME\fP
+
+.fi
+.RE
+.LP
+In addition, a special value called \fILC_ALL\fP directs \fIsetlocale\fP()
+to set all categories.
+.LP
+There are two primary uses of \fIsetlocale\fP():
+.IP " 1." 4
+Querying the international environment to find out what it is set
+to
+.LP
+.IP " 2." 4
+Setting the international environment, or \fIlocale\fP, to a specific
+value
+.LP
+.LP
+The behavior of \fIsetlocale\fP() in these two areas is described
+below. Since it is difficult to describe the behavior in
+words, examples are used to illustrate the behavior of specific uses.
+.LP
+To query the international environment, \fIsetlocale\fP() is invoked
+with a specific category and the NULL pointer as the
+locale. The NULL pointer is a special directive to \fIsetlocale\fP()
+that tells it to query rather than set the international
+environment. The following syntax is used to query the name of the
+international environment:
+.sp
+.RS
+.nf
+
+\fBsetlocale({LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, \\
+ LC_NUMERIC, LC_TIME},(char *) NULL);
+\fP
+.fi
+.RE
+.LP
+The \fIsetlocale\fP() function shall return the string corresponding
+to the current international environment. This value may
+be used by a subsequent call to \fIsetlocale\fP() to reset the international
+environment to this value. However, it should be
+noted that the return value from \fIsetlocale\fP() may be a pointer
+to a static area within the function and is not guaranteed to
+remain unchanged (that is, it may be modified by a subsequent call
+to \fIsetlocale\fP()). Therefore, if the purpose of calling
+\fIsetlocale\fP() is to save the value of the current international
+environment so it can be changed and reset later, the return
+value should be copied to an array of \fBchar\fP in the calling program.
+.LP
+There are three ways to set the international environment with \fIsetlocale\fP():
+.TP 7
+\fIsetlocale\fP(\fIcategory\fP,\ \fIstring\fP)
+.sp
+This usage sets a specific \fIcategory\fP in the international environment
+to a specific value corresponding to the value of the
+\fIstring\fP. A specific example is provided below:
+.sp
+.RS
+.nf
+
+\fBsetlocale(LC_ALL, "fr_FR.ISO-8859-1");
+\fP
+.fi
+.RE
+.LP
+In this example, all categories of the international environment are
+set to the locale corresponding to the string
+\fB"fr_FR.ISO-8859-1"\fP, or to the French language as spoken in
+France using the ISO/IEC\ 8859-1:1998 standard
+codeset.
+.LP
+If the string does not correspond to a valid locale, \fIsetlocale\fP()
+shall return a NULL pointer and the international
+environment is not changed. Otherwise, \fIsetlocale\fP() shall return
+the name of the locale just set.
+.TP 7
+\fIsetlocale\fP(\fIcategory\fP,\ "C")
+.sp
+The ISO\ C standard states that one locale must exist on all conforming
+implementations. The name of the locale is C and
+corresponds to a minimal international environment needed to support
+the C programming language.
+.TP 7
+\fIsetlocale\fP(\fIcategory\fP,\ "")
+.sp
+This sets a specific category to an implementation-defined default.
+This corresponds to the value of the environment
+variables.
+.sp
+.SH FUTURE DIRECTIONS
+.LP
+None.
+.SH SEE ALSO
+.LP
+\fIexec\fP(), \fIisalnum\fP(), \fIisalpha\fP(), \fIisblank\fP(),
+\fIiscntrl\fP(), \fIisdigit\fP(), \fIisgraph\fP(),
+\fIislower\fP(), \fIisprint\fP(), \fIispunct\fP(), \fIisspace\fP(),
+\fIisupper\fP(),
+\fIiswalnum\fP(), \fIiswalpha\fP(), \fIiswblank\fP(), \fIiswcntrl\fP(),
+\fIiswctype\fP(), \fIiswdigit\fP(), \fIiswgraph\fP(), \fIiswlower\fP(),
+\fIiswprint\fP(), \fIiswpunct\fP(), \fIiswspace\fP(), \fIiswupper\fP(),
+\fIiswxdigit\fP(), \fIisxdigit\fP(), \fIlocaleconv\fP(), \fImblen\fP(),
+\fImbstowcs\fP(),
+\fImbtowc\fP(), \fInl_langinfo\fP(), \fIprintf\fP(), \fIscanf\fP(),
+setlocale, \fIstrcoll\fP(), \fIstrerror\fP(), \fIstrfmon\fP()
+,
+\fIstrtod\fP(), \fIstrxfrm\fP(), \fItolower\fP(), \fItoupper\fP(),
+\fItowlower\fP(),
+\fItowupper\fP(), \fIwcscoll\fP(), \fIwcstod\fP(), \fIwcstombs\fP(),
+\fIwcsxfrm\fP(),
+\fIwctomb\fP(), the Base Definitions volume of IEEE\ Std\ 1003.1-2001,
+\fI<langinfo.h>\fP, \fI<locale.h>\fP
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
+Electrical and Electronics Engineers, Inc and The Open Group. In the
+event of any discrepancy between this version and the original IEEE and
+The Open Group Standard, the original IEEE and The Open Group Standard
+is the referee document. The original Standard can be obtained online at
+http://www.opengroup.org/unix/online.html .