gpt4 book ai didi

c - libc 是否显示国际错误消息?

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

根据 strerror() 返回的 ISO C 和 POSIX 错误消息family 应该是特定于区域设置的。而在我的示例(Mac OS X 10.10.5/clang/c11)中,它们不是。我检查了几个平台,所有平台的行为方式都相同。

我已经通过locale -a检查了语言环境。

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

#include <locale.h>

#include <string.h>

int main(int argc, const char * argv[])
{
setlocale(LC_MESSAGES, "he_IL.UTF-8");

errno = 0;
// Generate unique filename.
FILE *file = fopen(tmpnam((char[L_tmpnam]){0}), "rb");

if (file) {
// Do something useful.
fclose(file);
}
else {
fprintf(stderr, "Error message : %s\n", strerror(errno));
}

return EXIT_SUCCESS;
}

显示:

Error message : No such file or directory

最佳答案

我在标准中没有看到错误消息具有非标准语言环境翻译的要求。此外,this manpage表示选择了错误消息字符串(强调我的):

possibly using the LC_MESSAGES part of the current locale to select the appropriate language.

也就是说,我注意到我可以将系统上的区域设置更改为 fr_FR.UTF-8,从而为您的代码生成以下错误消息:

Error message : Aucun fichier ou dossier de ce type

如果您想要希伯来语的错误消息,您可能必须手动编码。请记住,许多人认为错误消息不应该被翻译; here is a SO question并对此主题进行讨论。

关于c - libc 是否显示国际错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43019882/

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