是* nix“posix”中程序的默认语言环境吗?

时间:2016-10-04 10:01:27

标签: c linux unix libc

来自The Linux Programming Interface

  

使用setlocale()设置语言环境有两种不同的方法。语言环境   argument可以是一个字符串,指定系统上定义的一个语言环境(即   / usr / lib / locale下其中一个子目录的名称,例如de_DE或en_US。   或者,可以将语言环境指定为空字符串,这意味着应该从环境变量中获取语言环境设置:

     

setlocale(LC_ALL,“”);

     

我们必须进行此调用,以便程序能够识别语言环境变量。如果省略调用,则这些环境变量对程序没有影响。

所以根据我的理解,如果我的程序没有明确调用setlocale函数,我的程序将使用默认的localePOSIX系统中的*nix,对?我无法搜索指定的文档。

1 个答案:

答案 0 :(得分:5)

查看the man

  

7.4程序如何设置区域设置

     

C程序在启动时会继承其语言环境变量。 这会自动发生。但是,这些变量不会自动控制库函数使用的语言环境,因为ISO C表示默认情况下所有程序都在标准“C”语言环境中启动。 使用环境指定的语言环境,你必须调用setlocale。请按以下方式调用:

setlocale (LC_ALL, "");

强调我的