gpt4 book ai didi

c - setlocale() 使用哪些文件?

转载 作者:行者123 更新时间:2023-11-30 17:59:58 25 4
gpt4 key购买 nike

不允许在共享CentOS服务器上进行编译。因此,我在我的 Debian 计算机上编译我的程序,将其与 Debian 的系统库(如 libc 等)链接。然后我上传我的程序和 Debian 系统库,我的程序就可以运行了。唯一的问题是 setlocale() 在 CentOS 上不起作用。 CentOS 安装了“en_US.utf8”,并且可以在除我的程序之外的所有程序上运行。我怀疑我还必须上传 Debian 的语言环境文件?如何将我的程序链接到 Debian 语言环境文件?我尝试使用 LOCPATH 但我不确定它到底是如何工作的。我必须链接到哪些文件以及如何链接?

C 程序:

setenv("LOCPATH", "/", 1);

if (setlocale(LC_ALL, "en_US.utf8") == NULL) {
puts("not set");
}

最佳答案

我使用十六进制编辑器修改 /usr/lib/locale/locale-archive 的路径,这显然是 setlocale() 使用的唯一文件跟踪。这个方法很脏,但是很有效。

根据man LOCPATH ,该环境变量是非标准的,因此不建议使用。没有给出如何使用它的示例,也没有给出“区域设置的目标文件”路径的确切含义。

我猜修改路径的唯一真正方法是 glibc 修改和重新编译。

关于c - setlocale() 使用哪些文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10931404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com