⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setlocale.3

📁 早期freebsd实现
💻 3
字号:
.\" Copyright (c) 1993.\"	The Regents of the University of California.  All rights reserved..\".\" This code is derived from software contributed to Berkeley by.\" Donn Seeley at BSDI..\".\" Redistribution and use in source and binary forms, with or without.\" modification, are permitted provided that the following conditions.\" are met:.\" 1. Redistributions of source code must retain the above copyright.\"    notice, this list of conditions and the following disclaimer..\" 2. Redistributions in binary form must reproduce the above copyright.\"    notice, this list of conditions and the following disclaimer in the.\"    documentation and/or other materials provided with the distribution..\" 3. All advertising materials mentioning features or use of this software.\"    must display the following acknowledgement:.\"	This product includes software developed by the University of.\"	California, Berkeley and its contributors..\" 4. Neither the name of the University nor the names of its contributors.\"    may be used to endorse or promote products derived from this software.\"    without specific prior written permission..\".\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION).\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF.\" SUCH DAMAGE..\".\"	@(#)setlocale.3	8.1 (Berkeley) 6/9/93.\".Dd June 9, 1993.Dt SETLOCALE 3.Os.Sh NAME.Nm setlocale ,.Nm localeconv.Nd natural language formatting for C.Sh SYNOPSIS.Fd #include <locale.h>.Ft char *.Fn setlocale "int category" "const char *locale".Ft struct lconv *.Fn localeconv "void".Sh DESCRIPTIONThe.Fn setlocalefunction sets the C library's notionof natural language formatting stylefor particular sets of routines.Each such style is called a.Sq localeand is invoked using an appropriate name passed as a C string.The.Fn localeconvroutine returns the current locale's parametersfor formatting numbers..PpThe.Fn setlocalefunction recognizes several categories of routines.These are the categories and the sets of routines they select:.Pp.Bl -tag -width LC_MONETARY.It Dv LC_ALLSet the entire locale generically..It Dv LC_COLLATESet a locale for string collation routines.This controls alphabetic ordering in.Fn strcolland.Fn strxfrm ..It Dv LC_CTYPESet a locale for the.Xr ctype 3 ,.Xr mbrune 3 ,.Xr multibyte 3and.Xr rune 3functions.This controls recognition of upper and lower case,alphabetic or non-alphabetic characters,and so on.  The real work is done by the.Fn setrunelocalefunction..It Dv LC_MONETARYSet a locale for formatting monetary values;this affects the.Fn localeconvfunction..It Dv LC_NUMERICSet a locale for formatting numbers.This controls the formatting of decimal pointsin input and output of floating point numbersin functions such as.Fn printfand.Fn scanf ,as well as values returned by.Fn localeconv ..It Dv LC_TIMESet a locale for formatting dates and times using the.Fn strftimefunction..El.PpOnly three locales are defined by default,the empty string.Li "\&""\|""which denotes the native environment, and the.Li "\&""C""and.LI "\&""POSIX""locales, which denote the C language environment.A.Fa localeargument of.Dv NULLcauses.Fn setlocaleto return the current locale.By default, C programs start in the.Li "\&""C""locale.The only function in the library that sets the locale is.Fn setlocale ;the locale is never changed as a side effect of some other routine..PpThe.Fn localeconvfunction returns a pointer to a structurewhich provides parameters for formatting numbers,especially currency values:.Bd -literal -offset indentstruct lconv {	char	*decimal_point;	char	*thousands_sep;	char	*grouping;	char	*int_curr_symbol;	char	*currency_symbol;	char	*mon_decimal_point;	char	*mon_thousands_sep;	char	*mon_grouping;	char	*positive_sign;	char	*negative_sign;	char	int_frac_digits;	char	frac_digits;	char	p_cs_precedes;	char	p_sep_by_space;	char	n_cs_precedes;	char	n_sep_by_space;	char	p_sign_posn;	char	n_sign_posn;};.Ed.PpThe individual fields have the following meanings:.Pp.Bl -tag -width mon_decimal_point.It Fa decimal_pointThe decimal point character, except for currency values..It Fa thousands_sepThe separator between groups of digitsbefore the decimal point, except for currency values..It Fa groupingThe sizes of the groups of digits, except for currency values.This is a pointer to a vector of integers, each of size.Va char ,representing group size from low order digit groupsto high order (right to left).The list may be terminated with 0 or.Dv CHAR_MAX .If the list is terminated with 0,the last group size before the 0 is repeated to account for all the digits.If the list is terminated with.Dv CHAR_MAX ,no more grouping is performed..It Fa int_curr_symbolThe standardized international currency symbol..It Fa currency_symbolThe local currency symbol..It Fa mon_decimal_pointThe decimal point character for currency values..It Fa mon_thousands_sepThe separator for digit groups in currency values..It Fa mon_groupingLike.Fa groupingbut for currency values..It Fa positive_signThe character used to denote nonnegative currency values,usually the empty string..It Fa negative_signThe character used to denote negative currency values,usually a minus sign..It Fa int_frac_digitsThe number of digits after the decimal pointin an international-style currency value..It Fa frac_digitsThe number of digits after the decimal pointin the local style for currency values..It Fa p_cs_precedes1 if the currency symbol precedes the currency valuefor nonnegative values, 0 if it follows..It Fa p_sep_by_space1 if a space is inserted between the currency symboland the currency value for nonnegative values, 0 otherwise..It Fa n_cs_precedesLike.Fa p_cs_precedesbut for negative values..It Fa n_sep_by_spaceLike.Fa p_sep_by_spacebut for negative values..It Fa p_sign_posnThe location of the.Fa positive_signwith respect to a nonnegative quantity and the.Fa currency_symbol ,coded as follows:.Bl -tag -width 3n -compact.It Li 0Parentheses around the entire string..It Li 1Before the string..It Li 2After the string..It Li 3Just before.Fa currency_symbol ..It Li 4Just after.Fa currency_symbol ..El.It Fa n_sign_posnLike.Fa p_sign_posnbut for negative currency values..El.PpUnless mentioned above,an empty string as a value for a fieldindicates a zero length result ora value that is not in the current locale.A.Dv CHAR_MAXresult similarly denotes an unavailable value..Sh "RETURN VALUESThe.Fn setlocalefunction returns.Dv NULLand fails to change the localeif the given combination of.Fa categoryand.Fa localemakes no sense.The.Fn localeconvfunction returns a pointer to a static objectwhich may be altered by later calls to.Fn setlocaleor.Fn localeconv ..Sh FILES.Bl -tag -width /usr/share/locale/locale/category -compact.It Pa $PATH_LOCALE/\fIlocale\fP/\fIcategory\fP.It Pa /usr/share/locale/\fIlocale\fP/\fIcategory\fPlocale file for the locale \fIlocale\fPand the category \fIcategory\fP..El.Sh "SEE ALSO.Xr euc 4 ,.Xr mbrune 3 ,.Xr multibyte 3 ,.Xr rune 3 ,.Xr strcoll 3 ,.Xr strxfrm 3 ,.Xr utf2 4.Sh STANDARDSThe.Fn setlocaleand.Fn localeconvfunctions conform to.St -ansiC ..Sh HISTORYThe.Fn setlocaleand.Fn localeconvfunctions first appeared in 4.4BSD..Sh BUGSThe current implementation supports only the.Li "\&""C""and.Li "\&""POSIX""locales for all but the LC_CTYPE locale..PpIn spite of the gnarly currency support in.Fn localeconv ,the standards don't include any functionsfor generalized currency formatting..Pp.Dv LC_COLLATEdoes not make sense for many languages.Use of.Dv LC_MONETARYcould lead to misleading results until we have a real time currencyconversion function..Dv LC_NUMERICand.Dv LC_TIMEare personal choices and should not be wrapped up with the other categories.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -