redis作为一个服务器,它的启动是从main函数开始的。redis.c
1. 进程重命名
定义在config.h
(defined __NetBSD__ || defined __FreeBSD__ || defined __OpenBSD__) //bsd(unix的变种)宏定义
USE_SETPROCTITLE
<span style="color: #0000ff;">#if (defined linux || defined APPLE__) //linux和苹果的宏定义
<span style="color: #0000ff;">#define USE_SETPROCTITLE
<span style="color: #0000ff;">#define INIT_SETPROCTITLE_REPLACEMENT
<span style="color: #0000ff;">void spt_init(<span style="color: #0000ff;">int argc,<span style="color: #0000ff;">char <span style="color: #000000;">argv[]);
<span style="color: #0000ff;">void setproctitle(<span style="color: #0000ff;">const <span style="color: #0000ff;">char <span style="color: #000000;">fmt,...);
<span style="color: #0000ff;">#endif
http://www.baike.com/wiki/BSD
BSD的开源後裔?不同的BSD操作系统针对不同的用途及用户,可应用于多种硬件构架。在政府机构中常能看到BSD的身影。虽然下面的BSD功能可能并非独有,但每种BSD在各自的领域,都逐渐具有了良好声誉,有的专注于性能,有的则以安全见长。是最年轻的BSD,专门提供比FreeBSD更优秀的系统,并使内核直接支持SSI集群,以取得更好的计算效果。这个项目在此方向上,才开始数年,主要关注i386平台。?FreeBSD在BSD家族中以易用性与高性能而着称,由于主要用作微处理器架构,如i386、AMD's 64-bit i386扩展,所以FreeBSD非常关注多处理器。FreeBSD在i386和amd64服务器上,运行地非常好,当然,它也可以在其他硬件构架上运行。?NetBSD拥有特别出色的可移植性,能在多达54种平台上运行,小到嵌入式的掌上设备,大到服务器群,NetBSD甚至还在国际空间站中服务。OpenBSD在密码学和安全方面特别出众,可移植性也很好,当然略逊于NetBSD。安全功能如OpenSSH,是由OpenBSD率先开创的。OpenBSD作为安全请求机器(security demanding machines)运行,受到好评。必须注意的是,上面所罗列的,更多地是基于感性认识,并针对其开发焦点,并没有严格地比较规则。实际而言,每种具体的BSD都可担当许多角色任务。
2. 设置locale
?
setlocale(LC_COLLATE,);
http://manpages.ubuntu.com/manpages/lucid/en/man3/setlocale.3.html
NAME
setlocale - set the current locale
SYNOPSIS
#include
<strong>char</strong> <strong>*setlocale(int</strong> <span style="text-decoration: underline;">category</span><strong>,</strong> <strong>const</strong> <strong>char</strong> <strong>*</strong><span style="text-decoration: underline;">locale</span><strong>);</strong>
DESCRIPTION
The setlocale() function is used to set or query the program’s current
locale.
If <span style="text-decoration: underline;">locale</span> is not NULL,the program’s current locale is modified
according to the arguments. The argument <span style="text-decoration: underline;">category</span> determines which
parts of the program’s current locale should be modified.
<strong>LC_ALL</strong> for all of the locale.
<strong>LC_COLLATE</strong>
for regular expression matching (it determines the meaning of
range expressions and equivalence classes) and string collation.
<strong>LC_CTYPE</strong>
for regular expression matching,character classification,conversion,case-sensitive comparison,and wide character
functions.
<strong>LC_MESSAGES</strong>
for localizable natural-language messages.
<strong>LC_MONETARY</strong>
for monetary formatting.
<strong>LC_NUMERIC</strong>
for number formatting (such as the decimal point and the
thousands separator).
<strong>LC_TIME</strong>
for time and date formatting.
The argument <span style="text-decoration: underline;">locale</span> is a pointer to a character string containing the
required setting of <span style="text-decoration: underline;">category</span>. 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 <strong>setlocale</strong>().
If <span style="text-decoration: underline;">locale</span> is <strong>""</strong>,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 <span style="text-decoration: underline;">category</span>),the environment variable <strong>LC_ALL</strong> is inspected,next the environment
variable with the same name as the category (<strong>LC_COLLATE</strong>,<strong>LC_CTYPE</strong>,<strong>LC_MESSAGES</strong>,<strong>LC_MONETARY</strong>,<strong>LC_NUMERIC</strong>,<strong>LC_TIME</strong>) and finally the
environment variable <strong>LANG</strong>. The first existing environment variable is
used. If its value is not a valid locale specification,the locale is
unchanged,and <strong>setlocale</strong>() returns NULL.
The locale <strong>"C"</strong> or <strong>"POSIX"</strong> is a portable locale; its <strong>LC_CTYPE</strong> part
corresponds to the 7-bit ASCII character set.
A locale name is typically of the form
<span style="text-decoration: underline;">language</span>[_<span style="text-decoration: underline;">territory</span>][.<span style="text-decoration: underline;">codeset</span>][@<span style="text-decoration: underline;">modifier</span>],where <span style="text-decoration: underline;">language</span> is an ISO 639
language code,<span style="text-decoration: underline;">territory</span> is an ISO 3166 country code,and <span style="text-decoration: underline;">codeset</span> is a
character set or encoding identifier like <strong>ISO-8859-1</strong> or <strong>UTF-8</strong>. For a
list of all supported locales,try "locale -a",cf. <strong><a href="http://manpages.ubuntu.com/manpages/lucid/en/man1/locale.1.html">locale</a></strong>(1).
If <span style="text-decoration: underline;">locale</span> is NULL,the current locale is only queried,not modified.
On startup of the main program,the portable <strong>"C"</strong> 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
<strong><a href="http://manpages.ubuntu.com/manpages/lucid/en/man3/localeconv.3.html">localeconv</a></strong>(3) call for locale-dependent information,by using the
multi-byte and wide character functions for text processing if
<strong>MB_CUR_MAX</strong> <strong>></strong> <strong>1</strong>,and by using <strong><a href="http://manpages.ubuntu.com/manpages/lucid/en/man3/strcoll.3.html">strcoll</a></strong>(3),<strong><a href="http://manpages.ubuntu.com/manpages/lucid/en/man3/wcscoll.3.html">wcscoll</a></strong>(3) or <strong><a href="http://manpages.ubuntu.com/manpages/lucid/en/man3/strxfrm.3.html">strxfrm</a></strong>(3),<strong><a href="http://manpages.ubuntu.com/manpages/lucid/en/man3/wcsxfrm.3.html">wcsxfrm</a></strong>(3) to compare strings.
RETURN?VALUE
A successful call to setlocale() returns an opaque string that
corresponds to the locale set. This string may be allocated in static
storage. 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
honored.
CONFORMING?TO
C89,C99,POSIX.1-2001.
NOTES
Linux (that is,glibc) supports the portable locales "C" and "POSIX".
In the good old days there used to be support for the European Latin-1
"ISO-8859-1" locale (e.g.,in libc-4.5.21 and libc-4.6.27),and the
Russian "KOI-8" (more precisely,"koi-8r") locale (e.g.,in
libc-4.6.27),so that having an environment variable
sufficed to make (3) return the right
answer. These days non-English speaking Europeans have to work a bit
harder,and must install actual locale files.
SEE?ALSO
(1),(1),(3),(3),(3),(3),(3),(3),(7),(7)
COLOPHON
This page is part of release 3.23 of the Linux project. A
description of the project,and information about reporting bugs,can
be found at . (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|