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

fre*_*ley 2 c++ macos locale

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

currentLocale = setlocale(LC_ALL,"");
Run Code Online (Sandbox Code Playgroud)

这通常很好用,我明白(例如)en_GB.UTF-8

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

ckr*_*use 5

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