c++ - 以 root 身份运行时 setlocale() 返回 'C'

标签 c++ macos locale

我使用以下命令来获取系统区域设置:

currentLocale = setlocale(LC_ALL,"");

这通常工作得很好,我得到(例如)en_GB.UTF-8

但是,当以 root 身份运行相同的程序时,我得到 C。以 root 身份运行时如何获取系统区域设置?

最佳答案

没有“系统区域设置”。每个用户都可以自行设置区域设置,并且每个程序的区域设置可能有所不同(例如执行 LC_ALL="en_US"区域设置)。返回值 C 表示用户尚未设置任何区域设置,并且默认区域设置处于事件状态。

关于c++ - 以 root 身份运行时 setlocale() 返回 'C',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7900948/

相关文章:

c++ - 在当前机器上使用主机名

c++ - 获取二进制文件的数据和代码区域的大小

c++ - boost::asio async_read 未接收数据或不使用回调

c++ - 在 OpenFrameworks Xcode OSX 项目中使用 OpenCV C++ 命令

c++ - 使用 boost::asio 时的引用问题(我猜)

c++ - 从 C/C++ 播放声音的最简单方法

bash - 使用 cp 在命令行复制目录时出错

java - JSF 重置语言环境

utf-8 - 如何在不使用平台特定功能的情况下打印 UTF-8 字符串?

java - Spring 3.0 本地化在 tomcat 中不起作用,只能从本地的 jetty