【问题标题】:Is the default locale of a program in *nix "posix"?*nix 中程序的默认语言环境是“posix”吗?
【发布时间】:2016-10-04 10:01:26
【问题描述】:

来自The Linux Programming Interface

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

setlocale(LC_ALL, "");

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

所以根据我的理解,如果我的程序没有显式调用setlocale 函数,我的程序将使用默认的locale,即POSIX 系统中的POSIX,对吗?我无法搜索指定的文档。

【问题讨论】:

    标签: c linux unix libc


    【解决方案1】:

    看着the man

    7.4 程序如何设置语言环境

    C 程序在启动时会继承其语言环境变量。 这会自动发生。但是,这些变量不会自动控制库函数使用的语言环境,因为 ISO C 规定所有程序默认以标准“C”语言环境启动。要使用环境指定的语言环境,您必须调用 setlocale。调用如下:

    setlocale (LC_ALL, "");
    

    强调我的

    【讨论】:

      猜你喜欢
      • 2014-03-31
      • 1970-01-01
      • 2011-10-29
      • 2016-09-07
      • 1970-01-01
      • 1970-01-01
      • 2020-04-05
      • 1970-01-01
      相关资源
      最近更新 更多